我正在尝试在AngularJS中实现一个跨多个页面使用的控制器.它利用了一些服务.其中一些是在所有页面上加载的,有些是 - 不是.我的意思是它在不同的文件中定义,并且这些文件是独立加载的.但如果我不在所有页面上加载这些服务,我会收到错误:
Error: Unknown provider: firstOtionalServiceProvider <- firstOtionalService
Run Code Online (Sandbox Code Playgroud)
所以,我需要在所有页面上加载脚本.我可以在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();
}
}]);
Run Code Online (Sandbox Code Playgroud) javascript dependency-injection optional-parameters angularjs