Ho lavorato su un progetto che è più simile a un framework e ha diverse app/moduli che è possibile installare. Guardalo come un appstore di base o in un negozio google.play. È una specie di applicazione intranet e tutti i moduli possono essere aggiunti al tuo account utente.AngularJS: come nidificare le applicazioni all'interno di un'app angolare
il framework è già in fase di sviluppo, ma ora mi sto occupando dell'idea di applicazioni/moduli. (link to a proof of concept in development, can be found here)
un'applicazione deve essere in qualche modo autonomo, e non in grado di includere improvvisamente script dal quadro, questo è perfettamente possibile da loro strutturazione in moduli separati in questo modo:
angular.module('myApp', []);
tuttavia, un'applicazione può avere modelli, script, css e può essere eseguito su un server separato, quindi sto cercando il modo migliore per recuperare lo script (s) e cssfile (s) e caricarli dinamicamente nell'app quando l'utente avvia il app
dentro dal framework.
- Attualmente sto strutturando le applicazioni come se avessero un modello principale, ad esempio
www.framework.com/apps/myapp/views/app.html
, per semplicità i raggrupparli in fasci script in 1 file di script per ogni applicazione, per cui v'è anche unwww.framework.com/apps/myapp/script.js
di essere inclusi.
Il framework contiene un modello che carica le app e un appController
. Il modello contiene questo pezzo:
<div data-ng-controller="AppController" data-ng-include="app.appTemplate">
<div>loading...</div>
</div>
questo si lega essenzialmente alla $scope.app.appTemplate
che viene aggiornato quando tutti gli script vengono caricati, quindi prima si vede un modello di carico, più tardi, dopo gli script sono inclusi nella pagina aggiorna il app.appTemplate
al modello principale sopra citato di un'applicazione.
durante il caricamento del primo modello di indice funziona, questo modello è attualmente caricato con il AppController
dal framework, quindi sta utilizzando il $scope
del framework e non è il proprio script.
devo ancora iniziare in qualche modo proprio modulo angolare della app, e lasciare che su di essa la propria senza correre nulla nel quadro di 'farla funzionare'
Sto ancora cercando di capire come meglio carico i file javascript dipendenti (probabilmente utilizzare requrejs o altro dipendenza loader) ma non ho attualmente idea di come 'stivale' l'applicazione senza lavorare dall'interno AppController
EDIT del quadro
Ho creato un piccolo progetto dimostrativo per mostrare i problemi a portata di mano, full code is visible at git-hub nel momento in cui questo progetto fa alcune cose programmate, l'idea sarebbe quella di rendere quelli meno codificati quando ho la prova del concetto giusto, ora è tutto sul caricamento delle applicazioni all'interno del framework. se è possibile, posso pensare a dove ottenere i nomi di URL e applicazioni da ...
ma non mi trovo con 100 appmoduli, quindi nel mio array di dipendenze? e quelle 100 dipendenze, non devono essere caricate a pageload allora? Stavo provando un'iniezione dinamica, solo perché potevo quindi inserire gli script quando sono necessari, non al caricamento della pagina. – Sander
ecco come lo abbiamo risolto: abbiamo 1 modulo 'framework', e tra le sue dipendenze c'è un modulo' framework.applications'. ora, quando carichiamo dinamicamente gli script per un'applicazione, lega i controller a quel modulo framework.applications. (tramite la funzione '$ controllerProvider.register()', in pratica abbiamo ristrutturato la nostra architettura come hai detto tu, per fare in modo che i controllori siano la logica dell'app e non avere un modulo per app. – Sander
E i routing? alla configurazione quando vengono aggiunti? – BenCr