Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Javascript Angular2 rxjs/主题,rxjs/可观察事件在父路由器和子路由器上不工作_Javascript_Typescript_Angular - Fatal编程技术网

Javascript Angular2 rxjs/主题,rxjs/可观察事件在父路由器和子路由器上不工作

Javascript Angular2 rxjs/主题,rxjs/可观察事件在父路由器和子路由器上不工作,javascript,typescript,angular,Javascript,Typescript,Angular,我想与应用程序内的组件进行交互/共享数据/相互通信,这些组件有很多子路由(都是基于templateUrl的) 尝试了这么多方法,就像事件发射器-@Output(),对我来说没有任何效果 最后我知道共享服务可以解决这个问题 我在找这样的东西 Application >> Global Service Application >> Router 1 Component >> Router 1A CompChild >> Router 1AA App

我想与应用程序内的组件进行交互/共享数据/相互通信,这些组件有很多子路由(都是基于templateUrl的)

尝试了这么多方法,就像事件发射器-@Output(),对我来说没有任何效果

最后我知道共享服务可以解决这个问题

我在找这样的东西

Application >> Global Service
Application >> Router 1 Component  >> Router 1A CompChild >>  Router 1AA
Application >> Router 2 Component  >> Router 2A CompChild>>  Router 2AA
Application >> Router 3 Component  >> Router 3A CompChild >>  **Route 3AA**
这是参考url:


请帮助我解决此问题

确保在根组件上只提供一次
GlobalService
。如果您将它添加到使用它的每个组件的提供程序中,每个组件都会得到它自己的实例,如果一个组件订阅了它的另一个实例,则会在其中发出事件,因此不会得到通知


Angular2 DI为每个提供商维护一个单一实例

检查我如何做到这一点,您能给我一个例子吗?我可以从中学到一些东西。请看问题下方评论中的链接。
$.broadcast('event_name',data); // Router 3AAComponent fire/broadcast/emit event

$allComponents.on('event_name',function(){ .... some event actions ....}): 
// All child component of application can subscribe to that event