在angular 2中,我有两个父组件需要发射和侦听,但我的代码不工作

在angular 2中,我有两个父组件需要发射和侦听,但我的代码不工作,angular,Angular,在angular 2中,我有两个父组件需要发射和侦听,但我的代码不工作 我基本上有一个父组件,它需要对另一个父组件进行广播,以便该组件可以自我更新 这是我的组件: @Output() userUpdated = new EventEmitter(); userUpdated = "userUpdated($event)"; userUpdated.emit("test"); userUpdated(item) { this.getAllUnReadMessages(

在angular 2中,我有两个父组件需要发射和侦听,但我的代码不工作

我基本上有一个父组件,它需要对另一个父组件进行广播,以便该组件可以自我更新

这是我的组件:

  @Output() userUpdated = new EventEmitter();

  userUpdated = "userUpdated($event)";

  userUpdated.emit("test");
  userUpdated(item) {
    this.getAllUnReadMessages();
  }
这是另一个侦听发射的父组件:

  @Output() userUpdated = new EventEmitter();

  userUpdated = "userUpdated($event)";

  userUpdated.emit("test");
  userUpdated(item) {
    this.getAllUnReadMessages();
  }
结果是许多控制台错误

我试着这样做:

但问题是,他们希望我将发射支付到组件中,而在这种情况下,我无法这样做

我只需要做一个基本的发射或广播到另一个组件。 做一些简单的事情变得很困难

我只为父到子组件做过这样的工作

但我现在需要它来为家长对家长工作。

好的,这是plunker:

这个问题在stackoverflow上有很多答案,您发布这个问题已经不是第一次了

您将首先为您的应用程序创建共享服务

import {Subject} from 'rxjs/Subject';

@Injectable()
export class MyService {

    public invokeEvent:Subject<any> = new Subject();

    constructor() {}
}
从这一点上讲,就是关于组件中
Subject
的用法

如果要发出事件,请使用
next

this._myService.invokeEvent.next(this.counter++);
要接收/收听,只需订阅:

this._myService.invokeEvent.subscribe((value) => {
           console.log(value); 
           this.name = value;
         });

请出示组件template@quindimildev模板中没有显示任何内容,只是text@quindimildev-我得到的错误是模板中的“userUpdated is not defined”(用户更新未定义),即您将事件从一个组件绑定到另一个组件的位置。这在您正在学习的教程中有很好的解释following@quindimildev我知道,我已经让它像我的其他一些代码那样工作。但是对于这个例子,我需要两个父组件来通信,对于这么简单的东西来说,似乎太多了。在angular 1中,我只需要广播,然后有一个听众。我不想做新的服务。我已经试过你的代码了。我有一个错误:主题不是defined@AngularM你导入主题了吗?现在它工作了,似乎没有更新视图?它向另一个componenet发射,但不更新view@AngularM你的问题很一般,你可以理解。我不知道你的设置或任何其他事情。正如您在plunker中看到的,它正在更新视图。提出另一个问题并具体说明情况。