我使用打字稿和角度。所以例如在控制器中我有符号
一个)
export function Controller($scope: Scope) {}
(<any>Controller).$inject = ['$scope'];
b)
export class Controller {
constructor(private $scope) {}
}
App.directive('someCoolDirective', function() {
return {
restrict: 'E',
etc...
controller: <any[]>['$scope', SomeCoolDirective.Controller],
etc...
};
});
C)
App.directive('someDirectives', <any[]>[ '$parse', '$rootScope', '$compile', 'userPermissions', function($parse, $rootScope, $compile, userPermissions) { }
d)
services...
如您所见,在缩小后有不同的方式为 DI 指定依赖项。但是我们只是人类,我倾向于忘记 (Controller).$inject,或者我添加了一些依赖项而忘记添加数组。如果我不指定它,它会起作用,直到缩小。比发现它更痛苦。有时浏览器控制台甚至没有错误。
你知道一些工具,它检查所有控制器、服务、指令并验证是否存在正确的 $inject ['$scope',... etc.] 符号?它匹配所有必需的依赖项?我想在构建服务器上自动化。