虽然这个
thread总结了以下三种代码样式:
1)
angular.module('mainCtrl',[]); function MainCrl($scope,$rootScope) {}
2)
angular.module('mainCtrl',[]) .controller('MainCtrl',function($scope,$rootScope)) { ... });
3)
angular.module('mainCtrl',['$scope','$rootScope',function(scope,rootScope)) { ... }]);
还有第四种方式我见过in this video对我很有吸引力
4)
var controllers = {} controllers.mainCtrl = function($scope,$rootScope){ }; app.controller(controllers)
我倾向于继续4),如果缩小它会破裂还是有任何其他缺点?我应该选择3)因为它似乎是标准的做法吗?
解决方法
>选项1污染全局命名空间并阻碍缩小并且不尊重模块.
>选项2不允许您在控制器签名中重命名注射器.
>选项4污染全局命名空间,但如果你正确地执行它,它是最小化的1.
>选项3允许您重命名您的injectables2,尊重模块,不污染全局命名空间,并且在缩小时不需要任何额外的工作.
>选项2不允许您在控制器签名中重命名注射器.
>选项4污染全局命名空间,但如果你正确地执行它,它是最小化的1.
>选项3允许您重命名您的injectables2,尊重模块,不污染全局命名空间,并且在缩小时不需要任何额外的工作.
所以我的赢家是选项#3.
1选项4 – 缩小版本:
var controllers = {}; controllers.mainCtrl = ['$scope',$rootScope){ ... }]; app.controller(controllers);
2重命名注射剂:
app.controller('MyCtrl','UserService',User){ ... }]);