2017-08-07 1 views
1

J'utilise JointJS pour créer des graphiques dynamiques. Dans mon scénario, j'ai deux papiers. Celui de gauche contient des formes d'éléments comme modèles que je peux faire glisser et déposer sur le bon papier. Tout fonctionne bien. Mais maintenant je veux faire tomber une forme d'élément sur une autre (un élément couplé par exemple). Si l'élément de gauche croise un autre élément sur le papier de droite, un événement doit être déclenché qui incorpore la nouvelle forme de l'élément dans l'élément existant.comment déposer des éléments et les incorporer dans des jointjs

J'ai eu ce jusqu'à présent, mais l'intersection ne fonctionne pas:

... 

//try to embed by dropping 
_.each(graph.getElements(), function (el) { 
    if (el.getBBox().intersect(cellView.model.getBBox())) { 
     //embed element one into element two 
    } 
}); 

... 

Merci à l'avance!

Répondre

0

Maintenant, je vais répondre à ma propre question ....

//get all existing elements and iterate through 
_.each(graph.getElements(), function (elements) { 
    //let s be the new element to drag over the parent element 
    if (s.getBBox().intersect(elements.getBBox())) { 
     //add a condition if you want.... 
     if (elements instanceof joint.shapes.devs.Coupled) { 
      //now embed the new element into the existing one 
      elements.embed(s); 
     } 
    } 
});