【问题标题】:How can I set node and link text manually in separated input?如何在单独的输入中手动设置节点和链接文本?
【发布时间】:2017-11-13 23:11:41
【问题描述】:

我有一个简单的 python 烧瓶应用程序,我将JSON 数据发送到我的HTML 并使用goJS 显示我的图表,如下所示:

我想在输入中更改我选择的节点文本,当我点击"update node text" 按钮时,我想用我的input 中的文本更新节点文本。我设法在此图表侦听器的帮助下获取节点文本:

myDiagram.addDiagramListener("ObjectSingleClicked", function(e) {
  console.log("clicked!");
  var part = e.subject.part;
  //part.data is the node object
  if (!(part instanceof go.Link)) {
    console.log("its not link!");
    console.log(part.data);
    document.getElementById("nodeText").value = part.data.text;

  } else {
    console.log("its link!");
  }
});

我一直在更新节点文本,不知道该怎么做。我也想用链接文本做同样的事情。我搜索并搜索了这个案例,但没有解决方案或示例。任何帮助将不胜感激。

【问题讨论】:

    标签: javascript gojs


    【解决方案1】:

    首先我应该说,允许用户在图表中编辑文本的最常见方法是将TextBlock.editable 设置为 true,并将 TextBlock.textTwoWay Binding 添加到某些数据属性.这允许用户就地编辑文本,而不是在单独的 HTML 字段中。

    但是在 HTML 字段中编辑属性是很常见的。假设至少有一种方法将某些数据属性绑定到节点中的 TextBlock.text 属性,那么您的 textarea 的模糊(或更改?)事件处理程序只需要在事务中调用 Model.setDataProperty .阅读有关modifying modelstransactions 的更多信息。

    最后,如果您希望允许用户编辑大量属性,尤其是如果属性的数量可能不同,您可能需要使用 GoJS DataInspector。它由Org Chart Editor sampleData Inspector sample 演示。

    【讨论】:

    • 非常感谢,这正是我所需要的!
    猜你喜欢
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    相关资源
    最近更新 更多