如何根据角度js中的条件注入服务?

时间:2016-09-26 10:15:44

标签: angularjs

我的angular app第一项服务中有两项服务用于测试Demo API,其次是Live API。我想在条件的基础上注入这些服务,我该如何在条件的基础上注入这些服务。

先谢谢..

3 个答案:

答案 0 :(得分:3)

如果你想在项目中只使用一个DI,尝试使用一些包装服务,比如

app.factory('wrapperService', function($injector) {
  if (isProduction) {
    return $injector.get('liveService');
  } else {
    return $injector.get('demoService');
  }
});

答案 1 :(得分:2)

您可以使用$ injector服务来实现此目的,因此如果您在控制器中,您可以注入$ injector,如下所示:

class Category {
    //.....
    public void setCode(String code) {
        this.code = code;
        this.rule.setCode(code);
    }
    //....
)

答案 2 :(得分:2)

您可以在此处找到$ Injector doc:https://docs.angularjs.org/api/auto/service/ $ injector

angular.module('myApp')
.controller('myCtrl', function($injector){
 var myService;
   if(...){
     myService = $injector.get('myService');
   }

}