重复依赖项¶
ID: js/angular/duplicate-dependency
Kind: problem
Security severity:
Severity: warning
Precision: very-high
Tags:
- maintainability
- frameworks/angularjs
Query suites:
- javascript-security-and-quality.qls
AngularJS 中的依赖项注入是通过提供所需依赖项的名称来完成的。多次提供相同的名称是多余的,因为 AngularJS 注入器使用缓存来存储实例化的依赖项。
建议¶
每个依赖项的名称只包含一次。
示例¶
以下示例展示了一个 AngularJS 控制器,其中$cookies
是一个重复的依赖项。
angular.module('myModule', [])
.controller('MyController', ['$scope',
'$cookies',
'$cookies', // REDUNDANT
function($scope, , $cookies1, $cookies2) {
// ...
});
这是有问题的,因为程序员可能会认为两个参数$cookies1
和$cookies2
是不同的实例,但它们不是。
相反,依赖项应该只列出一次
angular.module('myModule', [])
.controller('MyController', ['$scope',
'$cookies',
function($scope, $cookies) {
// ...
});
参考文献¶
AngularJS 开发者指南: 依赖项注入.