2017-07-04 90 views
1

我需要以非常的方式更改類別值。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'; 
     }) 
    ), . . . 

該工程確定,該節點dinamcally改變其顏色。

但是,這樣做後:

diagram.undoManager.undo(); 

節點交換機到模型中的一個類別(這是確定),但我看不出顏色的變回以前的顏色。 只有diagram.rebuildParts()方法有效,但我無法使用它。

有什麼想法?

回答

0

類別(模板)是特殊的。改變節點類別時,請嘗試使用Model.setCategoryForNodeData

如果您沒有更改節點模板,請選擇與「類別」不同的數據屬性名稱,因爲它在GoJS模型中具有其他含義。