我发现网上有很多答案,这里在堆栈溢出中。但是,没有人明确说明在哪种情况下使用哪一个,因为这三个都可以执行相同的一组功能?
请说清楚。
我发现网上有很多答案,这里在堆栈溢出中。但是,没有人明确说明在哪种情况下使用哪一个,因为这三个都可以执行相同的一组功能?
请说清楚。
提供者是一种可配置的服务。如果您使用 来创建Foo服务provider(),则可以FooProvider在config()块中使用 a:
angular.module('MyApp', [])
.provider('Foo', function () {
...
})
.config(function (FooProvider) {
FooProvider.something('bar');
})
.run(function (Foo) {
...
});
有关您可能希望将其用于什么的简单示例,请参阅$logProvider。
如果您不需要...Provider为您的服务配置可配置文件,则factory()orservice()方法可以更轻松地创建您的服务,因为您不需要进行复杂的提供程序设置。factory/service如果您不需要提供者,则只是简写的便利构造函数。
和之间的区别在于factory,service它factory接受一个典型的回调函数,而service期望一个“类”,它将用new. 例如:
// Javascript "class"
function Foo() {
...
}
Foo.prototype.bar = ...;
angular.module('MyApp', [])
.service('Foo', Foo)
.factory('Bar', function () {
...
})
.run(function (Foo, Bar) {
...
});