Я пытаюсь отделить некоторые общие функции между некоторыми из моих контроллеров в родительском контроллере. Я хотел бы сделать это, используя какое-то наследование, а не какое-то обслуживание. Все примеры, использующие функцию $injector.invoke
, зависят от функции-конструктора родителя в области видимости. Нравится это: http://plnkr.co/edit/kva82QyytKQfOafGiVxL?p=preview.angular get controller constructor
Поскольку у меня есть все мои контроллеры в отдельных файлах, я хотел бы сделать что-то вроде этого:
Родитель контроллер имеет свой собственный модуль:
angular.module('app.parent').controller('ParentCtrl', function() {
this.someMethodProvidedbyParent = ....
});
Контроллер ребенок расширяет ParentCtrl
с помощью $injector.invoke
, Как получить ParentCtrl
?
angular.module('app.parent.child').controller('ChildCtrl', function($injector) {
// Somehow need to get ParentCtrl from the angular module 'app.parent'
$injector.invoke(ParentCtrl, this, {});
});
Я предполагаю, что я мог бы просто поместить ParentCtrl в какой-либо объект на глобальном масштабе, но я предпочел бы использовать угловую модульную систему.
Вы можете использовать зависимость '$ controller',' $ controller ('ParentCtrl', {this: this}); 'должен работать в дочернем контроллере –
Не работал, когда я пытался. – qzr