Я искал @this SO Q & A и задавался вопросом, можно ли вместо этого получить базу abstract class
? Вместо interface
возможно ли иметь различные реализации базового класса в дочерних компонентах, которые доступны для родительского компонента через декоратор @ViewChild
в Angular2?Angular2 - @ViewChild from TypeScript base abstract class
В идеале, я хотел бы иметь средства для дочерних компонентов, которые создаются через родителя Router
, чтобы быть способным вызвать родительский маршрутизатор - это имеет смысл? Я хочу, чтобы ребенок имел возможность позвонить parentRouter.navigate(["SomeOtherRoute", { args: 'blah' }]);
.
Мой первоначальный подход состоял в том, чтобы дочерние компоненты реализовали базовый класс, который родительский компонент получит ссылку через декоратор @ViewChild
. Родитель будет subscribe
к действию дочернего элемента, пытающегося вызвать событие навигации, и его обработчик будет вызывать router.navigate
(так как он имеет роутер на родительском уровне).
Спасибо! Затем я собираюсь выполнить описанный здесь сервисный подход, https://angular.io/docs/ts/latest/cookbook/component-communication.html#!#bidirectional-service. –
Это обычно предпочтительный способ. –