我和我的合作伙伴正在开发一个 Angular 4 应用程序,其中最高级别的组件 (AppComponent) 有一个在整个应用程序中持续存在的组件(我们将称为 UndoComponent)。我们在 AppComponent 中有一个路由器出口,对于这个例子,假设路由器当前正在显示 ContentComponent。
有时 ContentComponent 中的项目可能需要与 UndoComponent 对话。例如,当某个事件被触发时,我们可能希望将一些信息推送到 UndoComponent 内部的堆栈中。所以我们需要做一些事情来让 ContentComponent 告诉 AppComponent 更新 UndoComponent 的堆栈。
我知道可以通过使用共享服务和 Observables 来实现从子组件(特别是路由子组件)更新父组件,但我的伙伴建议我们让 ContentComponent 扩展 AppComponent,然后使用 AppComponent 内部的方法来更新 UndoComponent。
我对这个解决方案感到不安。我找不到任何关于为什么应该或不应该使用组件继承进行父/子通信的信息。我确实觉得这样做会容易得多,因此我们不必继续在我们的服务中创建可观察对象来进行这些类型的更新。
想法?