Quale sarebbe il modo migliore per dividere l'applicazione AngularJS in pezzi/moduli più piccoli? Ad esempio se ho un post sul blog e i commenti abilitati per questo, penso che potrei suddividerlo in moduli come "post" e "commenti" (?) (Forse non è l'esempio migliore, ma l'idea è di dividere l'applicazione logica in moduli separati piuttosto che costruire un'enorme one-module-app).Come suddividere l'applicazione AngularJS in moduli più piccoli e gestire correttamente il routing?
Ho provato a eseguire il bootstrap di entrambi i moduli nei nodi DOM separati e utilizzare il routing in entrambi i moduli di conseguenza. Ci sono pochi problemi:
- Come applicazione "pagina singola" I'm bootstrapping modulo commenti da utilizzare anche in prima pagina anche se non è utilizzato lì.
- Poiché non sono in grado di utilizzare più ng-view all'interno di ng-app, sono obbligato a scrivere tutti i wrapper per i miei moduli nella vista index.html e riavviarli? Dovrebbe essere così? Sembra un po 'sbagliato. Come/dove dovrei effettuare il bootstrap di quelli?
- Ci sono suggerimenti per il routing? Devo diffondere quelli nei moduli o dovrei combinarli tutti insieme in qualche modo? (creare un modulo "blog" per includere i moduli "post" e "commenti" come dipendenze renderebbe ancora difficile definire ad esempio l'instradamento "/ post /: id"?)
index.html
<div class="post"><ng-view></ng-view></div>
<div class="comments"><ng-view></ng-view></div>
javascript.js
angular.module('posts', []).config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/', {
'template': 'Showing all the posts',
'controller': 'postCtrl
})
.when('/post/:id', {
'template': 'Showing post :id',
'controller': 'postCtrl
});
}]);
angular.module('comments', []).config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/post/:id', {
'template': 'Showing post :id comments',
'controller': 'CommentsCtrl'
});
}]);
angular.bootstrap($('.post'), ['posts']);
angular.bootstrap($('.comments'), ['comments']);
Ciao! Grazie per aver risposto. Penso di essere riuscito ad accedere a $ routeParams da una "sub-app", ma intendi per chiarezza di mantenere anche tutti i percorsi all'interno di un'applicazione principale? (Oppure ho solo frainteso cosa intendevi?). Un buon punto sul servizio dell'evento, penso che sia qualcosa che potrei aver bisogno di implementare anche io. Inoltre intendi che non stai usando più ng-view, ma piuttosto usi ng-include o qualcosa del genere? – acoder