8

Così ho un progetto su cui sto lavorando e richiede l'utilizzo di jsPlumb per le connessioni di elementi grafici e sto costruendo la mia app interamente utilizzando AngularJS.Utilizzo di AngularJS e jsPlumb (utilizzare le funzioni jsPlumb nel controller AngularJS)

Qual è la procedura da seguire se voglio includere il codice di un'altra libreria nel mio controller (per attivare qualche codice jsPlumb, ad esempio su ng-click) o qualsiasi altra parte del mio codice AngularJS? Dovrei farlo o perché non dovrei farlo?

risposta

4

Non vedo un modo semplice per stabilire un collegamento dati bidirezionale tra Angular e jsPlumb.

Quello che ho finito per fare sul mio progetto è la creazione di un servizio angolare personalizzato che funge da ponte tra i controller e jsPlumb. Tale servizio contiene metodi specifici di applicazione, come ad esempio:

  • removeElementFromFlow
  • addElement
  • getElements
  • getConnections
  • isElementConnected
  • ecc

permette di mantenere tutte codice idraulico jsPlumb al di fuori dei controller, kee ping loro puliti.

+0

Grazie @AlexPuckov! A proposito, come gestisci la creazione dinamica dell'elemento? come fai a sapere quando l'elemento è laico? Ottengo un sacco di parentNode indefinito e sto cercando di stare lontano da $ timeout ... –

+0

Non sono sicuro di aver capito un problema che hai con parentNodes indefiniti. Ma la creazione dell'elemento non dovrebbe essere complicata: a un certo punto nel controller (gestore di clic o qualcos'altro) si chiama la funzione personalizzata addElement in plumbService come descritto sopra. Questa funzione aggiunge un nuovo elemento HTML al contenitore jsPlumb e configura gli endpoint. Se non aiuta, penso che sia meglio creare una nuova domanda su SO per questo particolare problema. –

+0

Grazie per l'aiuto! –