2012-06-07 13 views
13

Ciao a tutti quelli che ho provato a farlo senza fortuna per alcuni giorni.angularjs inserisce il modulo dopo l'inizializzazione dell'app

È comunque necessario caricare in modo asincrono alcuni script js (che contengono moduli angolari) e iniettarli nell'app in esecuzione dopo l'inizializzazione.

Fondamentalmente ho un elemento DOM contenitore che verrà popolato con un codice HTML richiesto dal server, in base a questo codice HTML Deciderò quali file js (moduli) saranno necessari, quindi caricarli in modo asincrono iniettando i moduli sul app angolare e compilare il contenuto con i nuovi moduli iniettati.

Ho provato ma ogni volta che faccio il metodo bootstrap per iniettare il modulo, il controller principale si accende e cancella tutto lo stato del mio scope. :(

Qualsiasi aiuto qui intorno

+0

Potete fornire un violino con quello che si sta tentando di fare? – ganaraj

+0

Ecco il fiddle http://jsfiddle.net/MForce/WVz8r/32/ dare un'occhiata anche alla versione http://jsfiddle.net/MForce/WVz8r/31/31 funziona perché sto caricando il moduli insieme all'inizializzazione dell'app. Ma è esattamente quello che non voglio fare, dal momento che non so che tipo di direttive contenga il mio modello, e caricherò i moduli delle direttive in script separati in modo asincrono. Fondamentalmente una volta avviato il modulo App, c'è un modo per aggiungere/iniettare moduli aggiuntivi per renderlo consapevole delle nuove direttive? – MForce22

+0

Attualmente, non esiste un modo "bello" per farlo. Anche se, è sicuramente sulla nostra lista da fare. Cerca nella mailing list alcune idee su come hackerarlo :-D – Vojta

risposta

3

E 'brutto, ma funziona:? http://jsfiddle.net/MzseV/7/

Funziona praticamente iterando _invokeQueue membro del modulo e l'applicazione di funzioni all'interno utilizzando i provider utilizzati per la registrazione di servizi, regolatori e direttive (NOTA: questi devono essere catturati prima di avviare AFAIK). Questo probabilmente registrerà anche tutto ciò che hai registrato in precedenza, quindi potresti desiderare che alcuni euristici scelgano solo quelli che vuoi, anche se non sono sicuro che ci sia qualche danno in ri-registrazione

Ancora una volta, è abbastanza orribile e hacky, quindi utilizzerei solo l'ultima risorsa.

Here's la domanda che ho chiesto e più tardi ha risposto a questo.

EDIT: appena notato quanti anni ha questa domanda, spero che aiuti ancora qualcuno.

+0

Importante: ** NOTA: questi devono essere catturati prima di avviare AFAIK ** –

Problemi correlati