繁体   English   中英

在配置阶段如何使用工厂(角度)

[英]How to use factories during the config phase (angular)

在我的项目中,我有几个provider ,我在启动时进行了初始化

angular.module('myApp', [])
    .config((barFooProvider, ....) => {
        barFooProvider.setAPIPath = '/a/b/c';
        ...
    });

如您所见,我在这里定义了一个api路径,它是一个字符串。 但是我该如何设置工厂? 还是定义服务名称并随后使用$ injector的唯一方法?

您可以在提供程序的$get方法上使用$inject属性注释( docs ):

myApp.provider('test', function() {

    this.setFactoryName = function(name) {
        this.$get.$inject = [name];
    };

    this.$get = function(factory) {
        return { 
            getMessageFromFactory: function() {
                return factory.msg;
            }
        };
    };

    // set default value
    this.setFactoryName('myFactory1');

});

然后以这种方式配置它:

myApp.config(function(testProvider){
    testProvider.setFactoryName('myFactory2');
});

这样,所需的工厂将在服务实例化时注入到提供者的$get方法中。

您只可以在配置阶段使用提供程序
换句话说,提供者可以在AngularJs中配置
也许这个链接会有所帮助

提供者是可在配置阶段使用的唯一服务!

app.provider('test', function() {

  // set default path
  var APIPath = 'a/b/c';

  function setAPIPath(path) {
       APIPath =  path;
  }

});


angular.module('app', []).config(function(testProvider) {
  // set path during config
  testProvider.setAPIPath('x/v/b');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM