Parent/Child 组件交互 - Return 值使用 EventEmitter angular2

Parent/Child Component Interaction - Return values using EventEmitter angular2

1) 我有一个使用@Output 发出事件的子组件 (CounterComponent) 2)子组件还有一个Input参数callBackCancelled。 3) 父组件 (AppComponent) 将 callBackCancelled 值设置为 "true" 但在子组件中该值仍未定义。

查看 plunker 示例 https://plnkr.co/edit/2vnTUEDyBKT59GDTvkEJ

callbackFunction(e) {
alert('emitting event from child callback button component');
this.callback.emit(e);

alert('Now in child component, this value should be true, but it is:  ' + this.callBackCancelled);

}

有人可以帮忙吗?

实际上,这个 alert('Now in child component, this value should be true, but it is: ' + this.callBackCancelled); 在以下调用之前被调用:

btncallback(event) {
    console.log(event);
    this.callBackCancelled = event;
    alert('Parent component sets the callBackCancelled value to true.');
  }

所以到那时,this.callBackCancelled 仍未定义。有几种方法可以让它发挥作用。

  1. 一项服务
  2. 实施ngOnChanges()

这是后者的一个例子:

  1. [(callBackCancelled)]
  2. 中删除 ()
  3. 执行以下操作:https://plnkr.co/edit/qDG0dK01USbN1ifVFXvl?p=info