从注入组件的服务中发出的捕获事件



我已经通过依赖项注入插入了服务组件(组件A),并且此服务组件A不在组件b。

的模板中

如何捕获从服务组件发出的事件 - 如何在父级组件(组件B)中捕获它?我已经将发射命令放入子部分中:

@Output() hostReady = new EventEmitter();

我正在这样的事件如此:

hostReady.emit();

为了在父母中抓住它,我需要做什么?

好吧,由于我以前没有发布解决方案,所以我现在也可以这样做。因此,我所做的是我实施了模式订户。所有想了解事件的组件都订阅了该事件,当事件触发时,他们就知道了。该解决方案处理RXJS对象:

import { Subject } from 'rxjs/Subject';

我有一个特殊的组件intercommService,该组件将事件声明为RXJS主题,例如:

selectedLanguage: Subject<string>;
constructor() {
    this.selectedLanguage = new Subject<any>(); 
}

然后,使用以下方式可以触发每个组件(也具有此依赖项)可以触发事件:

this.intercomm.selectedLanguage.next(language);

,每个订户组件将其作为对该事件的订阅,即在构造函数中,订户将具有该依赖项注入,并将观察其事件:

constructor(private intercomm: IntercommService) {
    this.intercomm.selectedLanguage.asObservable().subscribe((value: any) => {
        // Do something with value
    });
}

有不同的方法。

在食谱示例中查看。

https://angular.io/docs/ts/latest/cookbook/component-communication.html#! #child-to-parent

相关内容

  • 没有找到相关文章

最新更新