Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角分量相互作用_Angular_Typescript_Angular Services_Angular Components_Angular4 Router - Fatal编程技术网

Angular 角分量相互作用

Angular 角分量相互作用,angular,typescript,angular-services,angular-components,angular4-router,Angular,Typescript,Angular Services,Angular Components,Angular4 Router,我的合作伙伴和我正在开发一个Angular 4应用程序,其中最高级别的组件AppComponent有一个我们称之为UndoComponent的组件,该组件在整个应用程序中持续存在。我们在AppComponent中有一个路由器出口,在本例中,我们假设路由器当前正在显示ContentComponent 有时ContentComponent中的项目可能需要与UndoComponent对话。例如,当触发某个事件时,我们可能希望将一些信息推送到组件内部的堆栈上。所以我们需要做一些事情让ContentCom

我的合作伙伴和我正在开发一个Angular 4应用程序,其中最高级别的组件AppComponent有一个我们称之为UndoComponent的组件,该组件在整个应用程序中持续存在。我们在AppComponent中有一个路由器出口,在本例中,我们假设路由器当前正在显示ContentComponent

有时ContentComponent中的项目可能需要与UndoComponent对话。例如,当触发某个事件时,我们可能希望将一些信息推送到组件内部的堆栈上。所以我们需要做一些事情让ContentComponent告诉AppComponent更新UndoComponent的堆栈

我知道从子组件更新父组件,特别是路由子组件,可以通过使用共享服务和可观察对象来实现,但我的合作伙伴建议我们让ContentComponent扩展AppComponent,然后使用AppComponent内部的方法来更新UndoComponent

我对这个解决办法感到不安。我找不到关于为什么应该或不应该在父/子通信中使用组件继承的任何信息。我确实觉得这样做会容易得多,这样我们就不必在我们的服务中不断创建可观察对象来实现这些类型的更新


想法?

我只会使用服务和可观察对象,我认为大多数开发人员都会同意。我甚至不认为尝试不同的方法有什么好处,特别是在一个特殊的情况下。这些文档甚至概述了如何使用服务进行组件间通信。此外,对于服务,任何更新都不需要重新评估解决方案。例如,现在您有一个路由器出口,用于加载路由组件,但如果您将其更改为具有子路由的路由组件,该怎么办。该过滤器将如何备份以更新组件。如果您有一项服务,您只需继续注入该服务,无论您的路由器出口有多深,或者您可能无法预见的任何其他变化,该服务仍然可以毫不费力地工作。

谢谢!我没有想到这种方法如何将我们的实现与组件和路由结构结合起来。