我看到很多Angular代码更像这样。 以下是他们的教程。
angular.module('phonecat', ['phonecatFilters', 'phonecatServices']).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}).
when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
otherwise({redirectTo: '/phones'});
}]);
但是,我对此更熟悉;
var app = angular.module('phonecat', ['phonecatFilters', 'phonecatServices']);
app.config(function($routeProvider) {
$routeProvider.
when('/phones', {templateUrl: 'partials/phone-list.html', controller: PhoneListCtrl}).
when('/phones/:phoneId', {templateUrl: 'partials/phone-detail.html', controller: PhoneDetailCtrl}).
otherwise({redirectTo: '/phones'});
}]);
我甚至想将function($routeProvider) { ...}
定义为变量,但我不相信这会有效。
这背后是否有理由避免全局变量,在这种情况下app
。
或者它只是AngularJs社区的最佳实践之一?
答案 0 :(得分:1)
命名空间很好。最佳做法是使用angular.value
而不是全局变量
app.value('myVariable', 'myValue')
.controller('myController', function($scope, myVariable) {
...
});
答案 1 :(得分:1)
angular.module(..)返回一个模块,你可以;
您看到了许多链式示例,因为它位于单个文件中。
您还会看到许多使用全局变量'app'或其他的示例,因为代码需要组织到许多文件中。
如果您制作单个文件示例,我建议使用第一个 如果您制作一个实际的应用程序,我建议使用第二个,这需要名称间距。