Я работаю над своим самым первым приложением Angular> 2 и создаю его с нуля.Я пытаюсь нарисовать блок-схемы на моем приложении, используя jsPlumb.Я застрял в проблеме, когда, когда я устанавливаю элемент host компонента в качестве источника и назначения моих соединений jsPlumb, коннектор не обрабатывается (соответствующий svg не создается).
Ниже приведены моикод - я вызываю REST с возвращает массив элементов.Я отображаю эти элементы на моем «Canvas» следующим образом (addNodeToCanvas вызывается в цикле) -
addNodeToCanvas(card) {
const factory = this.ComponentFactoryResolver.resolveComponentFactory(CardComponent);
const ref = this.cardDontainer.createComponent(factory);
ref.location.nativeElement.id = card.uuid;
ref.instance.cardData = card;
}
Обратите внимание, в строке 4 я устанавливаю уникальный идентификатор объекта в качестве элемента DOMID, на который может ссылаться jsPlumb для создания соединений.Когда я запускаю приложение, я вижу список визуализированных DOM, аналогичный приведенному ниже -
<card _nghost-c4="" id="6c7e7bd4-200f-4b8b-8492-a59fb8809819" class="ng-star-inserted">
<div _ngcontent-c4="" class="item">
Hi! I'm a node. My name is Dest 1.
</div>
</card>
После добавления элементов в DOM я создаю соединение следующим образом -
for (let c in cards) {
this.jsPlumbInstance.draggable(cards[c].uuid);
}
for(let e in edges) {
this.jsPlumbInstance.connect({
source: edges[e].source,
target: edges[e].destination,
}, routeConnectionSettings);
}
Теперь проблема, с которой я сталкиваюсь, заключается в том, что, когда jsPlumb ищет карточку элемента # 6c7e7bd4-200f-4b8b-8492-a59fb8809819 (например), он не может найти этот элемент в дереве DOM и не создает соединения.
Пару из этого я заметил - при установке идентификатора на div вместо селектора компонентов все работает нормально, и диаграмма создается без проблем.Точно так же, когда я устанавливаю стиль для селектора компонентов в файле CSS, кажется, что стили также не вступают в силу.
Это происходит потому, что селекторы компонентов каким-то образом отключены, и к ним нельзя получить доступ?Любая помощь с благодарностью.
Это мой JSON для ссылки -
"edges": [
{
"uuid": "dcc1151f-4668-4b3a-bbce-bc473545fcd7",
"source": "770a7359-d8cf-4803-9901-0383a8d080f2",
"destination": "6c7e7bd4-200f-4b8b-8492-a59fb8809819"
}
],
"cards": [
{
"uuid": "6c7e7bd4-200f-4b8b-8492-a59fb8809819",
"name": "Dest 1",
"type": "DESTINATION"
},
{
"uuid": "770a7359-d8cf-4803-9901-0383a8d080f2",
"name": "Src 1",
"type": "SOURCE"
}
]