我有几个问题
Angular JS - 是否可以使用除$ config之外的$ provider创建工厂或服务
是否可以使用注入器创建$ Provider实例 i,e angular.injector(['ng'])。get(“$ provider”); - 当我尝试它时抛出错误
提前致谢
更新问题以获得更清晰
实际上我的问题是 - 是否可以通过注入器$提供商创建工厂/服务。我知道工厂,服务和提供商之间的区别。而且我知道我们可以在config()中创建一个工厂,如
app.config(function($provide){
$provide.factory('newFac',function(){
return {
newT : 'This is from confing()'
};
});
});
只是想知道是否可以使用$ provide
创建工厂外部config()答案 0 :(得分:0)
Angular JS - 是否可以使用除$ config()
之外的$ provider创建工厂或服务
不清楚你在问什么,但让我解释一下。只有提供者可以注入config
阶段,没有别的,但提供者/服务/工厂之间的区别并不大,所以基本上你可以写任何工厂,并注入配置,但你必须正确命名,并提供一个名为$get
的方法,这样,angular知道哪个对象将工厂暴露给配置。不要错,只有提供商可以注入配置,但你可以写你的工厂,因为它是一个提供商。
这是一个例子。
var app = angular.module('test', []);
//simple service
app.service('service1', function(){
//some stuff
});
//simple provider
app.provider('service2', function(){
//some stuff
this.$get = function(){ //now this provider can be injected into config
return this; //there are only 2 differences, `app.provider` and `this.$get` method
}
});
app.config(function(service2Provider){ //notice `Provider` prefix
//some stuff
});
angular.injector([ 'NG'])获得( “$提供商”);
这适用于您的模块,例如,您的提供程序是 TestProvider ,创建此提供程序的模块是 TestModule ,那么您必须使用
angular.injector(['TestModule']).get("TestProvider");
它也适用于服务,常量,值,工厂