GoJS Custom节点保存默认值

时间:2015-11-04 13:35:59

标签: javascript json gojs

基于示例http://gojs.net/latest/samples/flowchart.html我创建了类似于下面的自定义节点模板。

N

问题在于调用

的保存按钮(save()函数)
myDiagram.nodeTemplateMap.add("Action-node",
    $(go.Node, "Spot", nodeStyle(),
        $(go.Panel, "Auto",
            $(go.Shape, "Rectangle",
                { minSize: new go.Size(40, 40), fill: "#FF9191", stroke: null }),
            $(go.Panel, "Vertical",
                $(go.TextBlock, "Start",
                {
                    font: "8pt Helvetica, Arial, sans-serif",
                    margin: 8,
                    stroke: lightText,
                    editable: true
                },
                new go.Binding("text")),
                $(go.TextBlock, "...",
                {
                    font: "8pt Helvetica, Arial, sans-serif",
                    margin: 8,
                    stroke: lightText,
                    editable: true
                },
                new go.Binding("text", "subtitle"))
            )
        ),
        // three named ports, one on each side except the top, all output only:
        makePort("T", go.Spot.Top, false, true),
        makePort("L", go.Spot.Left, true, false),
        makePort("R", go.Spot.Right, true, false),
        makePort("B", go.Spot.Bottom, true, false)
    ));

仅将默认值保存到json字符串。其他内容如位置和链接都可以正确保存。我的自定义模板是否有问题,或者如何在图表中保存节点值的更改?

1 个答案:

答案 0 :(得分:1)

基本思想是,如果某些代码(可能是因为用户操作)会更改某些 GraphObject 属性(例如 Node.location TextBlock.text < / strong>)并且您希望更改的值反映在节点数据对象中,您在该属性上使用TwoWay Binding

详细了解http://gojs.net/latest/intro/dataBinding.html的数据绑定,尤其是最后一节。

正如上一节所暗示的那样,当你有 TextBlock 可编辑时,通常情况下你想要绑定双向。那些您希望自动保存在模型中的属性值吗?