2017-07-30 4 views
0
myDiagram.nodeTemplateMap.add("decision", 
     $(go.Node, "Auto", 
     new go.Binding("text", "text"), 
     // define the node's outer shape, which will surround the Horizontal Panel 
     $(go.Shape, "Rectangle", 
      { fill: "yellow", stroke: "lightgray" }), 
     // define a horizontal Panel to place the node's text alongside the buttons 
     $(go.Panel, "Horizontal", 
      $(go.TextBlock, 
      { editable: true, font: "15px Roboto, sans-serif", margin: 5, textValidation: okName}, 
      //textValidation: okAnswer}, 

function okName(textblock, oldstr, newstr) { 
    return true; 
}; 

Je me demande comment obtenir le newstr en dehors de la fonction OkName? Je veux recueillir tous les newstr.comment obtenir le modèle mis à jour après le changement de diagramme?

Merci!

+0

Améliorer le formatage –

Répondre

1

Votre go.TextBlock doit avoir une liaison bidirectionnelle. Ainsi, lorsque le texte est accepté (la validation aboutit), votre texte est enregistré dans le modèle.

par exemple.

new go.Binding("text", "text").makeTwoWay() 

Si vous ne voulez pas que le texte soit sauvé au modèle, vous pouvez enregistrer votre newstr dans la fonction de validation à un tableau personnalisé ou tout ce que vous aimez. Vous pouvez également accéder aux données du modèle manuellement à partir de votre fonction avec textblock.part.data.