5

是否有关于控制者声明的既定惯例?(或任何形式的模块级配置)。

我观察到两种不同的使用方法:

var shoppingCartModule = angular.module('ShoppingCart',[])
shoppingCartModule.controller('CheckoutCtrl', function($scope) { ... });

对比

angular.module('ShoppingCart').controller('CheckoutCtrl', function($scope) { ... });

这两种方法之间有什么好处吗?此外,是否有首选(或新兴)约定?

我对具有许多模块的非平凡应用程序的好处特别感兴趣,其中控制器和模块的声明可能跨越许多文件。

4

2 回答 2

6

我个人做了以下(之后的原因):

angular.module('myApp', []);

angular.module('myApp').controller('myController', ['$dependency', 'anotherDependency',      
  function($dependency, anotherDependency) {
    ...
  }
]);

原因:

  • 我尽量避免全局范围
  • 使用字符串等价物冗余声明依赖项允许您安全地缩小代码
  • 它是一致的,干净的,整个故事就在那里。例如。app.something你不知道是什么,使用app`angular.module('myApp').something' 很明显那是什么。

编辑:刚刚想起我不久前在这个主题上看到的一个很酷的视频 - http://www.egghead.io/video/tTihyXaz4Bo。如果您还没有查看过 John 的网站,我强烈推荐它。我捐赠的他的视频给我留下了深刻的印象,你也应该这样做!

于 2013-06-11T03:21:24.590 回答
2

就个人而言,我觉得这样更干净一点:

angular.
  module('myApp').
  controller('myController', ['$dependency', 'anotherDependency', myAppController]);

function myAppController($dependency, anotherDependency) {
  ...
}

或者,甚至更好:

var Controllers  = {};

Controllers .someController = function myAppController($dependency, anotherDependency) {
  ...
}

angular.
  module('myApp').
  controller('myController', ['$dependency', 'anotherDependency', Controllers .someController]);
于 2014-12-09T15:56:15.023 回答