Javascript angularjs中的服务、factory.provider之间的差异
我们在angularjs的模块中使用服务、工厂和提供商。我的问题是它们之间的区别以及在什么条件下应该在angularjs中使用它们。请解决我的疑问。服务就是一个类。您应该提供带有构造函数的服务。Angular将只实例化这个类的一个实例。这是一个单身汉Javascript angularjs中的服务、factory.provider之间的差异,javascript,angularjs,html,angularjs-directive,Javascript,Angularjs,Html,Angularjs Directive,我们在angularjs的模块中使用服务、工厂和提供商。我的问题是它们之间的区别以及在什么条件下应该在angularjs中使用它们。请解决我的疑问。服务就是一个类。您应该提供带有构造函数的服务。Angular将只实例化这个类的一个实例。这是一个单身汉 angular.module('app', []) .service('someService', SomeService); SomeService.$inejct = ['dependency']; function SomeServ
angular.module('app', [])
.service('someService', SomeService);
SomeService.$inejct = ['dependency'];
function SomeService(dependency) {
this.foo = 'foo'
// . . .
}
SomeService.prototype.bar = function() {
return 'bar';
}
angular.module('app', [])
.factory('someFactory', ['dependency', someFactory]);
function someFactory(dependency) {
return {
foo: 'foo',
bar: function() {
return 'bar';
}
}
}
工厂希望传递给它的函数遵循JavaScript工厂模式。这是一个未更新的函数,返回一个唯一的对象。Angular只会给这个工厂打一次电话,所以它也是一个单身汉
angular.module('app', [])
.service('someService', SomeService);
SomeService.$inejct = ['dependency'];
function SomeService(dependency) {
this.foo = 'foo'
// . . .
}
SomeService.prototype.bar = function() {
return 'bar';
}
angular.module('app', [])
.factory('someFactory', ['dependency', someFactory]);
function someFactory(dependency) {
return {
foo: 'foo',
bar: function() {
return 'bar';
}
}
}
提供程序是允许您在配置期间配置服务的类
angular.module('myApp', [])
.provider('someService', SomeServiceProvider);
function SomeServiceProvider() {
this.foo = 'foo'
this.bar = 'bar';
}
SomeServiceProvider.prototype.setFooBar = function(foo, bar) {
this.foo = foo;
this.bar = bar;
}
SomeServiceProvider.prototype.$get = function() {
return new SomeService(this.foo, this.bar);
}
function SomeService(foo, bar) {
this.foo = foo;
this._bar = bar;
// . . .
}
SomeService.prototype.bar = function() {
return this._bar;
}
因此,现在在模块的配置部分,您可以执行一些ServiceProvider.setFooBar'baz','buz'这里已经有人问了同样的问题,请看以下内容:;你可以在这里找到清楚的解释。。。