AngularJS中的编码风格

时间:2013-11-28 14:34:04

标签: angularjs coding-style

虽然这个thread总结了以下三种代码样式:

1)

angular.module('mainCtrl', []);
function MainCrl($scope, $rootScope) {}

2)

angular.module('mainCtrl',[])
.controller('MainCtrl', function($scope, $rootScope)) { ... });

3)

angular.module('mainCtrl',[])
.controller('MainCtrl', ['$scope', '$rootScope', function(scope, rootScope)) { ... }]);

我看到in this video的第四种方式对我很有吸引力

4)

var controllers = {}
controllers.mainCtrl = function($scope, $rootScope){ };
app.controller(controllers)

我倾向于继续4),如果缩小它会破裂还是有任何其他缺点?我应该选择3),因为它似乎是标准的做法吗?

2 个答案:

答案 0 :(得分:5)

我的建议:选择3,有三个原因:

  1. 是(IMHO)最广泛采用的一种。
  2. 你对缩小没有任何问题(这是唯一的选择,这是真的)。​​
  3. 最适合模块。

答案 1 :(得分:5)

  • 选项1污染全局命名空间并阻碍缩小并且不尊重模块。
  • 选项2不允许您在控制器签名中重命名注射器。
  • 选项4污染全局命名空间,但如果正确执行 1 缩小安全。

  • 选项3允许您重命名您的注射剂 2 ,尊重模块,不污染全局命名空间,并且在缩小时不需要任何额外的工作。

所以我的赢家是选项#3。


1 选项4 - 缩小版本:

var controllers = {};
controllers.mainCtrl = ['$scope', '$rootScope', function($scope, $rootScope){ ... }];
app.controller(controllers);

2 重命名注射剂:

app.controller('MyCtrl', ['$scope', 'UserService', function($scope, User){ ... }]);