cytoscape.js - 콜라 문서 에 대한 gapInequalities
의 요소 layout
사전은 말한다 :
gapInequalities: undefined, // list of inequality constraints for the gap between the nodes,
// e.g. [{"axis":"y", "left":node1, "right":node2, "gap":25}]
left
및 값에 노드를 지정하는 객체를 어떻게 설정 right
합니까?
maxkfranz는 여기서 이러한 객체가 컬렉션 객체 가되어야 한다고 유용하게 지적 했습니다 . 여기에는 지정된 노드 ( "요소")에 대한 참조가 포함되며 cytoscape.js "핵심 객체"를 쿼리하여 생성됩니다. 명확하지 않은 것은 layout
객체가 노드 요소를 참조해야하고 요소 layout
를 렌더링하는 방법을 알려주기 전에 그래프에 요소를 추가해서는 안된다는 점을 감안할 때 이러한 컬렉션 객체를 어떻게 적절하게 설정합니까?
예를 들어, 해당 노드 지정 b
노드 위에 배치되어야한다 a
, 무슨 대신에 이동 ???a???
하고 ???b???
아래의 코드에서?
cy = cytoscape({
elements: [
{ data: { id: 'a' } },
{ data: { id: 'b' } },
. . .
],
layout: {
name: 'cola',
gapInequalities: [
{ axis: 'y', left: ???'a'???, right: ???'b'???, gap: 25 }
. . .
],
. . .
}
. . .
]);
이 경우, 대답은 할 수 없습니다 cy.$id('a')
및 cy.$id('b')
때문에 cy
객체가 아직 생성되지 않았습니다. cy
요소없이 객체 를 생성 한 다음이를 호출 cy.add()
하여이를 해결할 수 있습니다.하지만 layout
전달 된 객체 에는 무엇이 들어가 cytoscape()
나요?
나는 cytoscape.js 와 cola.js를 처음 접 했기 때문에 여기에서 매우 기본적인 아이디어가 누락되었을 가능성이 큽니다. 어떤 함수 호출이 객체를 설정하는지 보여주는 간단한 예와 객체를 호출 할 순서는 아마도 그것을 할 것입니다. 내 응용 프로그램에서 노드와 가장자리는 그래프에 점진적으로 추가되고 애니메이션은 추가되는 것을 표시해야하므로 처음에 모든 요소를 설정하지 않는 것이 더 합리적입니다.
노드와 가장자리가 점진적으로 추가되므로 요소와 레이아웃 개체없이 cy 개체를 만들 수 있습니다. 그런 다음 새 노드가 오면 그래프에 추가하고 레이아웃을 적용 할 수 있습니다.
cy 객체 초기화 후 새 노드가 올 때마다 다음을 적용합니다.
cy.add(...);
cy.layout({
name: 'cola',
gapInequalities: [{ axis: 'y', left: cy.$id("a"), right: cy.$id("b"), gap: 25 }],
...
}).run();
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다