GoJS撤消绑定到形状填充属性的类别属性的更改

时间:2017-07-04 18:24:01

标签: bind categories fill undo gojs

我需要以动态方式更改类别值。

代码:

diagram.startTransaction('changing state: ' + node.data.text);
model.setDataProperty(node.data, 'category', 'stateInitial');            
diagram.commitTransaction('changing state: ' + node.data.text);

节点模板:

$(go.Shape, 'RoundedRectangle',
    { stroke: null , strokeWidth: 0 },
    new go.Binding("fill", "category", function(category){

         if( category == 'stateInitial'){
              return '#99AE3B';
          }
          else if(category == 'stateFinal'){
              return '#E53935';
          }
          return '#6699CC';
      })
    ), . . .

这个工作正常,节点会改变它的颜色。

但是,这样做之后:

diagram.undoManager.undo(); 

节点切换到模型中的上一个类别(这没关系)但我没有看到颜色变回原来的颜色。 只有diagram.rebuildParts()方法有效,但我无法使用它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

类别(模板)很特别。在更改节点类别时,请尝试使用Model.setCategoryForNodeData

如果您不更改节点模板,请选择与“类别”不同的数据属性名称,因为它在GoJS模型中具有其他含义。