2017-07-04 4 views
1

je dois changer la valeur de la catégorie dinamically.GoJS annuler une modification de la propriété de la catégorie qui lie à la forme remplir la propriété

Le code:

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

Modèle Noeud:

$(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'; 
     }) 
    ), . . . 

Cela fonctionne OK, le nœud changer sa couleur dinamcally.

Mais, Après avoir fait cela:

diagram.undoManager.undo(); 

Le commutateur de nœud à la catégorie précédente dans le modèle (ce qui est OK) mais je ne vois pas le changement de couleur à la couleur précédente. Seule la méthode diagram.rebuildParts() fonctionne, mais je ne peux pas l'utiliser.

Une idée?

Répondre

0

Catégories (modèles) sont spéciaux. Essayez d'utiliser Model.setCategoryForNodeData au lieu de changer les catégories de nœuds.

Si vous ne changez pas les modèles de nœud, choisissez un nom de propriété de données différente de « catégorie », car il a d'autres significations dans les modèles GoJS.