簡體   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