Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 声明控制器的角度约定_Angularjs - Fatal编程技术网

Angularjs 声明控制器的角度约定

Angularjs 声明控制器的角度约定,angularjs,Angularjs,是否有关于控制器声明的既定公约?(或任何形式的模块级配置) 我观察到两种不同的使用方法: var shoppingCartModule = angular.module('ShoppingCart',[]) shoppingCartModule.controller('CheckoutCtrl', function($scope) { ... }); vs 这两种方法之间有什么好处吗?此外,是否有首选(或新兴)公约 我特别感兴趣的是具有许多模块的非平凡应用的好处,其中控制器和模块的声明可能跨越

是否有关于控制器声明的既定公约?(或任何形式的模块级配置)

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

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

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


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

我个人做了以下工作(原因如下):

原因:

  • 我试图避免全球范围
  • 使用字符串等价物冗余声明依赖项可以安全地缩小代码
  • 这是一致的,干净的,整个故事都在那里。例如,使用
    app.something
    你不知道
    app
    是什么,使用'angular.module('myApp')。something'很明显是什么

编辑:刚刚想起不久前我在这个主题上看到的一个很酷的视频-。如果你还没有浏览过John的网站,我强烈推荐。我捐赠的他的视频给我留下了深刻的印象,你也应该这么做

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

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]);

我也使用这个方法。这看起来不错,但为什么你要先在顶部声明angular.module?@bsiddiqui我相信会注入依赖项,比如
angular.module('myApp',['ui.bootstrap')。同意@Terry的回答我只想提一下你给出的第二种方法通常在jfiddles中用作示例,Terry的答案更适合于实际应用程序。你的第一个示例比这个问题或其他地方的任何其他示例都要清晰得多
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]);