Поставщик - это настраиваемый сервис. При создании Foo
службы с provider()
, вы можете использовать FooProvider
в config()
блоке:
angular.module('MyApp', [])
.provider('Foo', function() {
...
})
.config(function (FooProvider) {
FooProvider.something('bar');
})
.run(function (Foo) {
...
});
Для простого примера того, что вы можете использовать это для см $logProvider
.
Если вам не нужен конфигурируемый ...Provider
для вашей службы, factory()
или service()
методов облегчают создать службу, так как вам не нужно делать сложные настройки провайдера. 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) {
...
});
Для более специфических о том, как написать поставщика или поставщика меньше обслуживания, см $provide
и the guide.
Возможный дубликат [AngularJS: Сервис против поставщика и завода] (http://stackoverflow.com/questions/15666048/angularjs-service-vs-provider-vs-factory) – Ankh
Также см. Это в официальных документах: https://docs.angularjs.org/guide/providers – Anticom