什么是事件发射器?它是如何在Angular 2中工作的?

terry Angular 154

Angular 2不具有双向digest cycle,这是与Angular 1不同的。在Angular2中,组件中发生的任何改变总是从当前组件传播到其所有子组件中。如果一个子组件的更改需要反映到其父组件的层次结构中,我们可以通过使用事件发射器api来发出事件。

简而言之,EventEmitter是在@ angular/core模块中定义的类,由组件和指令使用,用来发出自定义事件。

@output() somethingChanged = new EventEmitter();

我们使用somethingChanged.emit(value)方法来发出事件。这通常用在setter中,当类中的值被更改完成时。

可以通过模块的任何一个组件,使用订阅方法来实现事件发射的订阅。

myObj.somethingChanged.subscribe(val) => this.myLocalMethod(val));

扩展阅读:

  1. http://stackoverflow.com/questions/36076700/what-is-the-proper-use-of-an-eventemitter
  2. https://angular.io/docs/ts/latest/api/core/index/EventEmitter-class.HTML
  • 暂无回复内容