2015-11-04 5 views
0

На основании примера http://gojs.net/latest/samples/flowchart.html Я создал шаблоны пользовательских узлов, которые выглядят как один из нижеперечисленных.GoJS Пользовательский узел сохраняет значения по умолчанию

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) 
    )); 

Проблема заключается в том, что кнопка сохранения (функция сохранения()), что вызывает

myDiagram.model.toJson(); 

сохраняет только значения по умолчанию для JSon строки. Другие вещи, такие как местоположение и связь, сохраняются правильно. Есть ли проблема с моим настраиваемым шаблоном или как я могу сохранить изменения в значениях узлов в графе?

ответ

1

Основная идея заключается в том, что если какой-то код (возможно, из-за действий пользователя) изменяет некоторые GraphObject свойство (например, Node.location или TextBlock.text), и вы хотите, измененное значение должно быть отражено в объект данных узла, вы используете TwoWay Binding.

Подробнее о привязке данных к http://gojs.net/latest/intro/dataBinding.html, особенно в последнем разделе.

Поскольку это последняя секция предполагает, когда у вас есть TextBlock, который редактируемые это обычно бывает, что вы хотите сделать Binding TwoWay. Являются ли те значения свойств, которые вы надеялись сохранить автоматически в Model?