【问题标题】:Getting TextBlocks of Panel in GoJS在 GoJS 中获取 Panel 的 TextBlocks
【发布时间】:2017-01-19 13:20:48
【问题描述】:

我需要一些关于 GoJS 的帮助。我正在使用 SubGraphExpanderButtons 部分中this page 的示例。例如,我想通过单击SubGraphExpanderButton 将组中所有 TextBlock 的颜色设置为红色。我添加click 事件处理程序

...
$("SubGraphExpanderButton", {
    margin: new go.Margin(0, 3, 5, 0),
    click: function(e, button) {
       ...
    }
}),
...

根据示例的结构,我尝试获取所有 TextBlock 之类的东西

button.panel.panel.elt(1)

因为按钮位于水平面板中,所以水平面板位于垂直面板中,而垂直面板中有包含所有文本块的占位符。但这是错误的。我什至不确定这个选择器是否让我准确地获得了占位符,即使是这样,我也无法从我得到的对象中获取嵌套元素。看来我误解了 GoJS 的概念。

那么,我的问题是,我怎样才能获得所有的 TextBlocks 组?

【问题讨论】:

    标签: javascript graph gojs


    【解决方案1】:

    组的成员节点和链接不在包含组的可视化树中。每个部分(包括节点和链接和组)都是一个顶级对象,其中 GraphObject.panel 为空。因此,您无法浏览作为 Panels 和 GraphObjects 层次结构的可视化树来访问任何成员节点。反之亦然,从成员节点通过.panel 到达包含组。

    相反,您可以从组中使用 Group.memberParts 来访问其成员节点和链接(如果有的话)。从节点或链接中,您可以查看 Part. containsGroup 以访问其包含的组(如果有的话)。

    button.part.memberParts.each(function(member) { if (member instanceof go.Node) { . . . } })

    更多讨论在https://forum.nwoods.com/t/getting-textblocks-of-panel-in-gojs/8009

    【讨论】:

      猜你喜欢
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多