有没有办法使用注释样式注入执行以下情况,没有提供者异常只是空引用。
angular.module('test',[]).controller('cont',['NonExixstingService',function(nonExixstingService){
//I want to be get here with no exception but NonExixstingService is null or undefined
}]);
答案 0 :(得分:1)
我不这么认为,但我可以想到可以与ngRoute或ui.router一起使用的解决方法。
在您的州或路线上设置解决方案属性,如:
resolve : {
serviceName:[$q,$injector,function($q,$injector){
var exists = $injector.has('serviceName');
return $q.resolve(exists ? $injector.get('serviceName') : null)
}]
};
不确定这会如何反映本地名称与服务名称相同,因此您可能必须为服务设置别名。 resolve属性会将其值注入控制器,其键将是本地变量名。
但如果您要解决这个问题,您应该注入$ injector,并在控制器内执行.has
检查