Мой партнер и я разрабатываем приложение Angular 4, в котором компонент самого высокого уровня (AppComponent) имеет компонент (назовем UndoComponent), который сохраняется во всем приложении. У нас есть маршрутизатор-выход в AppComponent, и для этого примера предположим, что Router в настоящее время отображает ContentComponent.
Бывают случаи, когда элементу ContentComponent может потребоваться взаимодействие с UndoComponent. Например, когда запускается определенное событие, мы можем захотеть поместить некоторую информацию в стек внутри UndoComponent. Поэтому нам нужно что-то сделать, чтобы ContentComponent сказал AppComponent обновить стек UndoComponent.
Я знаю, что обновление родителя из дочернего (в частности, маршрутизируемого дочернего компонента) может быть достигнуто с помощью общего сервиса и Observables, но мой партнер предложил сделать ContentComponent расширением AppComponent, а затем использовать метод внутри AppComponent для обновления UndoComponent.
Я чувствую себя неловко об этом решении. Я не могу найти никакой информации о том, почему вы должны или не должны использовать наследование компонентов для связи родитель/потомок. Я действительно чувствую, что было бы намного проще сделать это таким образом, чтобы нам не пришлось продолжать создавать наблюдаемые объекты в нашем сервисе, чтобы происходили такие типы обновлений.
Мысли?