【问题标题】:GoJS get dropped object values on ExternalObjectsDroppedGoJS 在 ExternalObjectsDropped 上获取丢弃的对象值
【发布时间】:2016-01-12 14:47:14
【问题描述】:

我有两个类似于http://gojs.net/latest/samples/flowchart.html 的面板 GoJs 图。我将对象从左侧面板拖放到主图。如何获取/设置删除对象(如文本等)的属性值?我被困住了

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

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

【问题讨论】:

    标签: gojs


    【解决方案1】:

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

    其次,为什么要在复制的 Node(s) 中“调整一些 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 的任何其他属性,你可以通过给每个 TextBlock 明确地做到这一点 GraphObject.name 并调用 Panel.findObject 以在特定节点中查找特定 TextBlock。

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

    【讨论】:

    • 在左侧面板中,我想要常规大小的节点。因为右边的节点会有两个可编辑的TextBlocks并且里面会有很多文本我想默认调整这些节点的大小。
    • 听起来你应该使用不同的模板。看看这个介绍页面,它演示了每个图表如何使用不同的模板:gojs.net/latest/intro/palette.html
    猜你喜欢
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 2019-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多