2014-11-12 2 views
8

사용자가 동적으로 블록을 추가하고 블록을 링크로 연결할 수있는 보드를 만들려고합니다. (this과 비슷하지만 동적으로) JointJs 프레임 워크를 사용하고 있으며 모든 것이 예상대로 작동 할 때까지 사용자가 두 블록을 연결할 때 몇 가지 정보를 표시해야합니다. 내 문제는 블록을 연결할 때 처리 할 이벤트가 없습니다..JointJs - 이벤트 onConnect 링크

나는 this question을 보았지만 나의 예에서는 이벤트를 첨부 할 링크 인스턴스가 없습니다.

Here 내 예를

을보고 여기에 블록 보드에 추가하는 방법입니다 수 있습니다. 자석 : true 텍스트 속성의은 텍스트를 연결 가능하게 만드는 것입니다. 링크가 연결될 때 처리 할 이벤트를 찾는 데 도움이 필요합니다.

var rect = new joint.shapes.basic.newRect({ 
    position: { x: position, y: position }, 
    size: { width: 100, height: 40 }, 
    attrs: { 
     rect: { 'stroke-width': '1', stroke: 'black', rx: 3, ry: 3, fill: 'blue'}, 
     text: { text: 'Block', magnet: true, } 
    } 
}); 
graph.addCell(rect); 

나는 또한 mouseUp 이벤트 및 좌표를 보였지만 아무것도 나왔다 .. 정말 (모든 다른 이벤트 셀 모델에 의해 트리거로) 전파 도움

답변

12

change:sourcechange:target 이벤트를 감사 그래프에 링크를 참조 할 필요가 없으므로 다음과 같이 할 수 있습니다.

graph.on('change:source change:target', function(link) { 
    if (link.get('source').id && link.get('target').id) { 
     // both ends of the link are connected. 
    } 
}) 
+0

놀라운! 고마워요! – BFigueiredo

+2

대상 노드가없는 링크를 피하는 방법이 있습니까? – user630522

+0

dave, 연결이 완전히 이루어 졌을 때만 작동하지만 한 쪽 끝은 잘리지 않습니다. 연결이 만들어 지거나 없어 졌을 때 이벤트를 얻는 적절한 방법은 무엇입니까? (열린 상태가'change : source' 필터링되지 않은 경우처럼) 그냥 움직이면 안됩니다. –