我有两个面板GoJs Diagram类似于http://gojs.net/latest/samples/flowchart.html。我将对象从左侧面板拖放到主图表中。如何获取/设置属性的值ob删除文本等对象?我坚持
myDiagram.addDiagramListener("ExternalObjectsDropped",
function (e) {
var part = e.subject;
console.log(e.subject);
});
控制台只显示非常复杂的对象结构,但我不知道在哪里可以找到我正在搜索的值。我的主要目标是调整一些已删除对象的TextBlock。
答案 0 :(得分:3)
首先,要了解源图中的模型数据将被复制到目标图的模型中。因此,您在源中的节点数据对象上的可枚举属性应出现在目标中创建的节点的节点数据对象上。
其次,你为什么要"调整一些TextBlocks"在复制的节点?如果 TextBlock.text 属性是绑定到复制节点数据对象中的属性的数据,那么您真正想要做的是修改模型数据上的这些属性。所以你的" ExternalObjectsDropped"听众可以这样做:
function(e) {
// according to the documentation e.subject in this case is
// the Diagram.selection, a Set of the copied Parts
e.subject.each(function(node) {
var model = e.diagram.model;
model.setDataProperty(node.data, "myProp1", ...);
model.setDataProperty(node.data, "myProp2", ...);
});
}
或者,如果您确实要更改 GraphObject.desiredSize 或 TextBlock 的任何其他属性,则可以通过为每个TextBlock赋予 GraphObject.name 并调用 Panel.findObject 以在特定节点中查找特定的TextBlock。