ree*_*rej 5 javascript dependency-injection code-formatting angularjs
在使用内联括号表示法时,是否有任何常用的约定如何格式化长依赖列表?在浏览了github和Angular JS开发人员指南之后,我还没有看到一致的方法.
我对个人认为最好的事情不感兴趣(对不起),但是如果有某些我无法找到的标准惯例或最佳实践.
这是有效的,但它扩展到第212列.快速比较字符串和参数也很困难.
angular.module('donkey', []).controller('FooCtrl', ['$scope', '$http', 'someCoolService', 'anotherCoolService', 'somethingElse', function ($scope, $http, someCoolService, anotherCoolService, somethingElse) {
}]);
Run Code Online (Sandbox Code Playgroud)
它仍然在第87列,但很容易比较字符串和args.
angular
.module('donkey', [])
.controller('FooCtrl', [
'$scope', '$http', 'someCoolService', 'anotherCoolService', 'somethingElse',
function ($scope, $http, someCoolService, anotherCoolService, somethingElse) {
}]);
Run Code Online (Sandbox Code Playgroud)
我倾向于使用这个,因为它水平紧凑,允许快速注释掉依赖项.但是,它确实看起来有点奇怪.
angular
.module('donkey', [])
.controller('FooCtrl', [
'$scope',
'$http',
'someCoolService',
'anotherCoolService',
'somethingElse',
function (
$scope,
$http,
someCoolService,
anotherCoolService,
somethingElse) {
}])
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以满足JSLint的空白检查,并且还可以在Sublime Text 3中维护代码崩溃功能?
谢谢!
Angular JS贡献者编码规则没有提及它.
此最佳实践指南适用于Google,Crockford等.
我不知道在Angular中注入依赖项的三种支持方法之间存在公认的约定.
话虽这么说,我目前正在开发一个非常大的Angular项目,我们一直使用$inject语法来定义我们的依赖项.该文档也似乎在向这个方向趋势.
所以我的建议是这样的.
将所有依赖项定义为对象
var SomeService = function($rootScope, $http, $q){
this.$rootScope = $rootScope;
this.$http = $http;
this.$q = $q;
};
SomeService.$inject = ['$rootScope', '$http', '$q'];
myModule.service('someService', SomeService);
Run Code Online (Sandbox Code Playgroud)
这将使您更容易推理您的代码,并允许您将服务,指令和控制器分离到不同的文件中.
除了非常小的应用程序,我将远离使用匿名声明和所有依赖项的数组语法.
| 归档时间: |
|
| 查看次数: |
723 次 |
| 最近记录: |