Страницы

Поиск по вопросам

вторник, 26 февраля 2019 г.

Как можно наследовать фабрику?

Есть такого вида фабрика, как ее можно наследовать?
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

Комментариев нет:

Отправить комментарий