Есть такого вида фабрика, как ее можно наследовать?
appServices.factory('Parent', ['$resource', '$rootScope',
function ($resource, $rootScope) {
var service = function () {
this.items = [];
}
service.prototype.load = function (query) {}
service.prototype.update = function (query) {}
service.prototype.delete = function (query) {}
return service;
}
]);
Ответ
Сервис и фабрика это разные понятия в мире Angular. Фабрику, которая у вас в примере, как раз таки можно пронаследовать, т.к. она возвращает непосредственно саму функцию конструктор, которой достаточно для наследования. Сервис же при инициализации создаст экземпляр родителя.
.factory('ParentFactory', function () {
var Parent = function () {
this.items = [];
}
Parent.prototype.load = function (query) {}
Parent.prototype.update = function (query) {}
Parent.prototype.delete = function (query) {}
return Parent;
})
.factory('ChildFactory', function (ParentFactory) {
var Child = function () {
// инициализация родителя, если необходима
ParentFactory.call(this);
// свои свойства
this.limit = 10;
}
// наследование
Child.prototype = Object.create(ParentFactory.prototype);
Child.prototype.constructor = Child;
// свои методы
Child.prototype.insert = function (query) {}
return Child;
})
Пример на Plunker
Комментариев нет:
Отправить комментарий