AngularJS アプリケーションを小さなピース/モジュールに分割する最良の方法は何でしょうか? たとえば、ブログ投稿とコメントを有効にしている場合、「投稿」や「コメント」(?) などのモジュールに分割できると思います (最良の例ではないかもしれませんが、アイデアはアプリケーション ロジックを分割することです)。巨大な 1 つのモジュール アプリを構築するのではなく、個別のモジュールに分割します)。
別々の DOM ノードで両方のモジュールをブートストラップし、それに応じて両方のモジュールでルーティングを使用しようとしました。いくつかの問題があります:
- 「シングルページ」アプリケーションとして、フロントページで使用されていなくても、フロントページでも使用できるようにコメントモジュールをブートストラップしています。
- ng-app 内で複数の ng-view を使用できないため、モジュールのすべてのラッパーを index.html ビューに記述してブートストラップする必要がありますか? そのようにする必要がありますか?少し間違っているようです。それらをどのように/どこでブートストラップする必要がありますか?
- ルーティングのヒントはありますか?それらをモジュールに分散する必要がありますか、それとも何らかの方法でそれらをすべて組み合わせる必要がありますか? (1 つの「ブログ」モジュールを作成して「投稿」モジュールと「コメント」モジュールを依存関係として含めると、たとえば「/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']);