Angolare 2: comunicazione delle funzioni typescript con librerie js esterne

Utilizzo di JavaScript Infovis Toolkit come libreria esterna per disegnare grafici e alberi. Devo modificare il metodo onClick dei nodes per inviare in modo asincrono una richiesta HTTP GET al server e assegnare i dati che provengono dal server alle proprietà e alle variabili di una class di servizio Angular. Usando il webpack per imballare tutti i typescripts compilati in un singolo file js, il file di output è confuso e illeggibile. quindi chiamare una funzione che si trova nel file js compilato da una libreria js esterna, non è chiaramente la soluzione migliore.

Provo la seguente soluzione all’interno del mio servizio Angular in modo da poter accedere alle proprietà di questo servizio senza alcun problema:

document.addEventListener('DOMContentLoaded', function () { var nodes = document.querySelectorAll(".nodes"); // nodes = [] for (var i = 0; i < nodes.length; i++) { // nodes.length = 0 nodes[i].addEventListener("click", function () { // asynchronously sending GET request to the server // and assing receiving data to the properties of this Angular service }); } }); 

Tuttavia, questa soluzione non funziona perché in JavaScript Infovis Toolkit i nodes vengono disegnati dopo aver terminato il rendering del DOM e anche dopo l’evento window.onload . Questa libreria ha alcuni metodi del ciclo di vita come onAfterCompute () che viene chiamato dopo il completamento dell’albero di disegno. Come posso triggersre un evento globale per informare il servizio Angular che il disegno dell’albero è completato e può interrogare tutti i nodes?