GoJS 在 ExternalObjectsDropped 上获取丢弃的对象值

GoJS get dropped object values on ExternalObjectsDropped

我有两个类似于 http://gojs.net/latest/samples/flowchart.html 的面板 GoJs 图。我将对象从左侧面板拖放到主图中。我如何 get/set 属性值 ob 丢弃的对象,如文本等?我坚持

    myDiagram.addDiagramListener("ExternalObjectsDropped",
    function (e) {
        var part = e.subject;
        console.log(e.subject);
    });

控制台只显示非常复杂的对象结构,但我不知道在哪里可以找到我要搜索的值。我的主要目标是调整放置对象的一些 TextBlocks 的大小。

首先,了解源图表中的模型数据将被复制到目标图表的模型中。因此,无论您在源中的节点数据对象上拥有什么可枚举属性,都应该出现在目标中创建的节点的节点数据对象上。

其次,为什么要"resize some 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.desiredSizeTextBlock 的任何其他 属性 s,您可以通过给每个 TextBlock 一个 GraphObject.name 并调用 Panel.findObject 来明确地做到这一点以找到特定的 TextBlock一个特定的节点。

页面 http://gojs.net/latest/learn/graphObject.html 提供了更多讨论。