2017-07-04 3 views
1

カテゴリの値を動的に変更する必要があります。形状充填プロパティにバインドされているカテゴリプロパティの変更を元に戻す

コード:

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

ノードテンプレート:これはOK動作

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

モデルで前のカテゴリへのノードスイッチを(これはOKです)が、私は戻って、以前の色に色の変化が表示されません。 diagram.rebuildParts()メソッドのみ動作しますが、使用できません。

答えて

0

カテゴリ(テンプレート)は特別です。ノードカテゴリを変更する場合は、Model.setCategoryForNodeDataを代わりに使用してみてください。

ノードテンプレートを変更していない場合、GoJSモデルには他の意味があるため、「カテゴリ」とは異なるデータプロパティ名を選択します。