angularjs,编码风格,全局变量的使用

时间:2013-09-18 21:38:34

标签: angularjs

我看到很多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社区的最佳实践之一?

2 个答案:

答案 0 :(得分:1)

命名空间很好。最佳做法是使用angular.value而不是全局变量

app.value('myVariable', 'myValue')
   .controller('myController', function($scope, myVariable) {
       ...
    }); 

答案 1 :(得分:1)

angular.module(..)返回一个模块,你可以;

  1. 分配给变量app(这是一个全局变量)。
  2. 或继续链接
  3. 您看到了许多链式示例,因为它位于单个文件中。

    您还会看到许多使用全局变量'app'或其他的示例,因为代码需要组织到许多文件中。

    如果您制作单个文件示例,我建议使用第一个 如果您制作一个实际的应用程序,我建议使用第二个,这需要名称间距。

相关问题