【发布时间】:2013-08-30 21:56:39
【问题描述】:
我正在尝试在 AngularJS 中实现一个控制器,该控制器用于多个页面。它利用了一些服务。其中一些加载在所有页面上,一些 - 没有。我的意思是它在不同的文件中定义,并且这些文件是独立加载的。但是,如果我没有在所有页面上加载这些服务,我会收到错误:
Error: Unknown provider: firstOtionalServiceProvider <- firstOtionalService
所以,我需要在所有页面上加载脚本。我可以在 Angular 中将依赖项声明为可选吗?例如:
myApp.controller('MyController', ['$scope', 'firstRequiredService', 'secondRequiredService', 'optional:firstOptionalService', 'optional:secondOptionalService', function($scope, firstRequiredService, secondRequiredService, firstOptionalService, secondOptionalSerivce){
// No need to check, as firstRequiredService must not be null
firstRequiredService.alwaysDefined();
// If the dependency is not resolved i want Angular to set null as argument and check
if (firstOptionalService) {
firstOptionalService.mayBeUndefinedSoCheckNull();
}
}]);
【问题讨论】:
标签: javascript angularjs dependency-injection optional-parameters