2017-08-02 1 views
0

Je suis en train d'obtenir l'exemple « Bonjour tout le monde » JointJS travaillerUncaught TypeError: Impossible de lire la propriété « push » undefined - en essayant de JointJS Bonjour exemple du monde

Référence: https://resources.jointjs.com/tutorial/hello-world

Les dépendances sont tous chargés dans le bon ordre mais je ne peux pas contourner l'exception suivante: Uncaught TypeError: Cannot read property 'push' of undefined lorsque vous essayez d'exécuter l'exemple.

Je réalise que Backbone nécessite un underscore mais j'ai lu dans un article différent que Backbone 1.3.3 devrait être compatible avec Lodash. Quand j'insère le caractère de soulignement, cela semble entrer en conflit avec lodash (que jointjs requiert). par exemple. '_.create n'est pas défini'.

J'ai essayé une multitude de versions différentes en vain.

est ici un jsFiddle où je suis en train de le faire travailler.

https://jsfiddle.net/0mdg8xja/1/

Qu'est-ce que je fais mal et comment puis-je contourner cette exception dans ce scénario?

+0

Je ne sais que la migration de tout underscore à lodash ne résout même pas ce problème. Quand je me suis penché là-dessus, je pense que JointJS avait besoin d'une version personnalisée de lodash, mais je n'en suis pas sûr. J'ai abandonné et je suis allé avec GoJS. –

+0

Je n'avais pas encore rencontré GoJS, semble prometteur. Si je ne peux pas sembler résoudre ce problème, je pense que je pourrais aussi aller pour GoJS. Merci. –

+0

Veuillez privilégier l'extrait de pile sur site par des ressources hors site comme jsfiddle, etc. –

Répondre

1

Je suis venu à l'idée de lever les yeux JSFiddles existants et sommes tombés sur celui-ci:

https://jsfiddle.net/robertrozas/gfaL9ype/

je comparais l'exemple du monde bonjour à celui-ci et il semble que la seule chose que je manquait était la fait que je devais envelopper le javascript intérieur:

$(function(){ }); 

Cela semble fonctionner indépendamment de ce que les versions que j'utilise. Je l'ai testé sur JointJS 0.9.7 et 1.1.0, backbone 1.1, 1.3.3 et lodash 3.10.1.

Voici le JSFiddle mis à jour pour si quelqu'un a trébuché sur le même frontmasker comme je l'ai fait.

https://jsfiddle.net/gfaL9ype/30/

+0

['$ (function() {});' est un raccourci pour '$ (document) .ready (function() {}); '] (https://learn.jquery.com/using-jquery-core/document-ready/) ce qui signifie que vous essayiez d'obtenir' $ ('# myholder') 'avant qu'il n'existe réellement dans le DOM. –

+0

sa raison de la version de lodash. Jointjs utilise l'argument 3 de _.each (this), qui a été supprimé dans la version plus récente de lodash. – Kishorevarma