Комментарии 9
Открыли Америку =)
+4
От провайдера к фабрике упростили. молодцы… а дальше?
Один шажок же всего к сервису, и полнее б картинка была.
Один шажок же всего к сервису, и полнее б картинка была.
+2
Восполню этот небольшой пробел. :)
Допустим, у нас есть такой «класс» (условно, помним, что классов в ES5 нет):
Пусть у нас будет константа name и фабрика:
То же самое можно записать короче:
где вторым аргументом передается функция-конструктор. При этом сработает inject-магия и значение name для конструктора HelloService автоматически заполнится из константы (разумеется, надо не забывать, что при минификации кода нужно явно прописывать $inject).
Таким образом, module.service — это еще один синтаксический сахар для простейшего случая фабрики.
Допустим, у нас есть такой «класс» (условно, помним, что классов в ES5 нет):
function HelloService(name) {
this.name = name;
}
HelloService.prototype.getGreeting = function() {
return "Hello, " + (this.name || 'world') + "!";
}
Пусть у нас будет константа name и фабрика:
app.constant('name', 'Vasya');
app.factory('$hello', function(name) {
return new HelloService(name);
});
То же самое можно записать короче:
app.service('$hello', HelloService);
где вторым аргументом передается функция-конструктор. При этом сработает inject-магия и значение name для конструктора HelloService автоматически заполнится из константы (разумеется, надо не забывать, что при минификации кода нужно явно прописывать $inject).
Таким образом, module.service — это еще один синтаксический сахар для простейшего случая фабрики.
+2
Дописал шпаргалку
0
Очень коротко и очень упрощенно
var superFunction = function(){}
var factory = superFunction();
var service = superFunction;
var superFunction = function(){}
var factory = superFunction();
var service = superFunction;
+2
Спасибо, стало понятно что к чему. Еще узнал про value, до этого использовал только constant.
+1
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
В чем разница между factory и provider в AngularJS (на пальцах)