8

Mam projekt, nad którym pracuję i wymaga on użycia jsPlumb do połączeń elementów graficznych i całkowicie buduję swoją aplikację przy użyciu AngularJS.Używanie AngularJS i jsPlumb (użyj funkcji jsPlumb w sterowniku AngularJS)

Jaką procedurę należy wykonać, jeśli chcę dołączyć do kontrolera kod innej biblioteki (aby uruchomić jakiś kod jsPlumb, powiedzmy ng-click) lub jakąkolwiek inną część mojego kodu AngularJS? Czy powinienem to zrobić, czy dlaczego nie powinienem tego robić?

Odpowiedz

4

Nie widzę łatwego sposobu ustanowienia dwukierunkowego powiązania danych między Angular i jsPlumb.

W pracy nad projektem wykonałem niestandardową usługę Angular, która służy jako pomost między kontrolerami a jsPlumb. Taka usługa zawiera metody specyficzne dla aplikacji, takich jak:

  • removeElementFromFlow
  • addElement
  • getElements
  • getConnections
  • isElementConnected
  • itp

Pozwala zachować wszystkie jsPlumb kod instalacyjny poza kontrolerami, kee Pingować je w czystości.

+0

Dzięki @AlexPuckov! Btw, jak sobie radzisz z dynamicznym tworzeniem elementu? skąd wiesz, kiedy element jest zalany? Dostaję wiele nieokreślonego parentNode i staram się trzymać z dala od $ timeout ... –

+0

Nie jestem pewien, czy rozumiem problem z niezdefiniowanymi parentNodes. Ale tworzenie elementu nie powinno być skomplikowane: w pewnym momencie w kontrolerze (obsłudze kliknięcia lub czymś innym) wywołujesz swoją niestandardową funkcję addElement w usłudze plumbService, jak opisałem powyżej. Ta funkcja dodaje nowy element HTML do kontenera jsPlumb i konfiguruje punkty końcowe. Jeśli to nie pomoże, myślę, że lepiej jest stworzyć nowe pytanie na SO dla tego konkretnego problemu. –

+0

Dzięki za pomoc! –