我发现网上有很多答案,这里在堆栈溢出中。但是,没有人明确说明在哪种情况下使用哪一个,因为这三个都可以执行相同的一组功能?
请说清楚。
我发现网上有很多答案,这里在堆栈溢出中。但是,没有人明确说明在哪种情况下使用哪一个,因为这三个都可以执行相同的一组功能?
请说清楚。
提供者是一种可配置的服务。如果您使用 来创建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) {
...
});