小编mol*_*cha的帖子

AngularJS中的可选依赖项

我正在尝试在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

51
推荐指数
5
解决办法
2万
查看次数