如果我有像
这样的组件@Component({selector: 'todo-cmp'})
class TodoCmp {
@Input() model;
@Output() complete = new EventEmitter(); // TypeScript supports initializing fields
onCompletedButton() {
this.complete.next(); // this fires an event
}
}
在另一个组件中,我通过DI获得了它的副本,如下所示:
...
class SomeOtherClass(){
constructor(todoCmp:TodoCmp){
// how do I listen to
...
}
...
如何在" SomeOtherClass"内部手动添加事件监听器?并监听从DEPEmpmp注入的depenendcy实例中发出的任何点击事件。
类似于todoCmp.addEventListener('完成',函数(e){});
可能?还是更好的ng2?
TX
肖恩。
答案 0 :(得分:8)
首先,EventEmitter.next()
已经EventEmitter.emit()
,因为alpha-45左右。
其次,您正在寻找的方法是.subscribe()
class SomeOtherClass(){
constructor(todoCmp:TodoCmp){
todoCmp.complete.subscribe((result)=>{
//result == arg passed into emit()
}))
}
请注意,the docs中提供了这些信息 - 您应该真正检查这些信息,因为EventEmitter
比您习惯的事件监听器更强大。