Ctrl
結(jié)尾??刂破鞑捎民劮迕?(HomePageCtrl
, ShoppingCartCtrl
, AdminPanelCtrl
, etc.).function MyCtrl(dependency1, dependency2, ..., dependencyn) {
// ...
}
module.controller('MyCtrl', MyCtrl);
使用這種定義方式可以最大的避免問題。你可以使用工具自動(dòng)生成數(shù)組定義,如:ng-annotate (and grunt task grunt-ng-annotate).
function MyCtrl(s) {
// ...
}
module.controller('MyCtrl', ['$scope', MyCtrl]);
下面的代碼更易理解
function MyCtrl($scope) {
// ...
}
module.controller('MyCtrl', ['$scope', MyCtrl]);
對(duì)于包含大量代碼的需要上下滾動(dòng)的文件尤其適用。這可能使你忘記某一變量是對(duì)應(yīng)哪一個(gè)依賴。
$emit
, $broadcast
及 $on
方法。發(fā)送或廣播的消息應(yīng)該限定在最小的作用域。$emit
, $broadcast
發(fā)送的消息列表并且仔細(xì)的管理以防命名沖突和bug。function myFormat() {
return function () {
// ...
};
}
module.filter('myFormat', myFormat);
function MyCtrl($scope, myFormatFilter) {
// ...
}
module.controller('MyCtrl', MyCtrl);
controllerAs
語法):--app.js--
module.config(function ($routeProvider) {
$routeProvider
.when('/route', {
templateUrl: 'partials/template.html',
controller: 'HomeCtrl',
controllerAs: 'home'
});
});
--HomeCtrl--
function HomeCtrl() {
this.bindingValue = 42;
}
--template.html--
<div ng-bind="home.bindingValue"></div>