AngularJSを試してmoduleとcontrollerの扱いにハマッた
最近AngularJSの話題をよく目にするので以下の記事を参考に、サンプルを書いて遊んでいた。
AngularJSを使ってみました
お前のAngular.jsはもうMVCではない。と言われないためのTutorial
公式ドキュメント
ざっくりと雰囲気は理解できたつもりなので実際のサービス運用のための設計を考えてみたのだが、どうにもmoduleの扱いが理解できない。出回っているコードではcontroller群をControllersなどのmoduleにして扱うのがオススメなようだ。
angular.module('controllers', []). controller('hogeController'. function ($scope) { $scope.popAlert = function () { alert('hoge'); } }). controller('hugaController', function ($scope) { $scope.popAlert = function () { alert('huga'); } });
ただ、これでは見てわかる通り、controller内部のコードやcontroller自体が増えた場合に見通しが悪くなる。一般的にやられているように用途別のcontroller毎にファイルを切り分けて管理したいのだが、一度angular.module()で定義したmoduleを後から呼び出す方法がヒットしない。moduleはそもそもそういう使い方をするものではないのか、それともググり力が低いのか。何にしろ、しっかりmoduleやらDI周りの理解を深めたほうが良さそう。ぐぬぬ。
追記
var controllers = angular.module('controllers', []);をmain.js的なものに書いて、後はそれぞれcontrollerの別ファイルでcontrollers.controller()と書くだけでいいっぽい。todoMVCのサンプルに書いてあった。灯台下暗し。