ドキュメントとかに載ってるfunction単独でコントローラ、っていうアレはなんか邪道らしい。
綺麗に書く時はモジュール使って…っていうお作法になるんだけど形をいっつも忘れるのでまとめとく。
面倒なんでcoffeeのみです。
window.moduleJoin = angular.module 'join',[]
moduleJoin.controller 'joinController', controllerJoin;
モジュールの登録
window.moduleJoin = angular.module 'join',[]
モジュールとモジュール名を登録する。上の例だとモジュール名joinでmoduleJoin変数にモジュールを格納する。
ng-app属性で指定するのはモジュール名、の方
コントローラの登録
moduleJoin.controller 'joinController', controllerJoin;
モジュールにコントローラとコントローラ名を登録する。上の例だとコントローラ名joinControllerでcontrollerJoin変数にあるコントローラを格納する。
ng-controllerで指定するのはコントローラ名、の方
なにがまずいか
controllerJoin = function($scope){
}
って形でコントローラ作って、ng-controller="controllerJoin"
ってした場合、HTMLが変数名に依存する。
変数名はJSの圧縮とかで変わることも考えると、moduleとか使って変数と呼び出しキー文字列とをマッピングする形で作るほうが安全。