2015-08-20 4 views
0

J'affiche des détails supplémentaires sur le nœud lorsque je le clique avec le bouton droit. Maintenant, je veux afficher ces détails ailleurs lorsque le nœud est seulement sélectionné, pas à droite.GoJS makeSvg de contextMenu

est-il un moyen de faire un SVG de la parure/contextMenu

J'ai essayé d'agir comme si le contextMenu était un noeud normal

J'ai appelé

diagram.makeSVG({ 
    parts: diagram.selection.first().adornments.first() 
}) 

Ou

diagram.makeSVG({ 
    parts: diagram.selection.first().contextMenu 
}) 

mais aucun n'a fonctionné.

je reçois toujours l'erreur « ne peut pas définir la propriété « reset » undefined »

Essayer

travaillé sans erreur en quelque sorte, ce qui est étrange, comme adornments donne un itérateur. Avec ça le SVG a été créé (j'ai vu ça en regardant le HTML où je l'ai mis après), mais sans aucun contenu.

Comment créer un fichier SVG à partir du contexteMenu correctement?

Répondre

1

Premièrement, la propriété "parties" de l'argument de la méthode Diagram.makeSvg attend une collection, à savoir un Iterable.

Deuxièmement, si vous voulez Diagram.makeSvg ou Diagram.makeImage pour rendre Adornment s ou d'autres temporaires Partie s, vous devez spécifier "showTemporary". // assuming myDiagram.selection.count > 0: var svg = myDiagram.makeSvg({ parts: myDiagram.selection.first().adornments, showTemporary: true }); Ceci inclura n'importe quel menu contextuel qui s'affiche pour la partie sélectionnée.

Troisièmement, si vous voulez juste un rendu d'un menu contextuel GoJS: var cm = myDiagram.selection.first().findAdornment("ContextMenu"); if (cm === null) return; var ads = new go.List(); ads.add(cm); var svg = myDiagram.makeSvg({ parts: ads, showTemporary: true });