[英]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.