Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 如何在依赖注入实例上手动侦听angular 2事件?_Typescript_Angular - Fatal编程技术网

Typescript 如何在依赖注入实例上手动侦听angular 2事件?

Typescript 如何在依赖注入实例上手动侦听angular 2事件?,typescript,angular,Typescript,Angular,如果我有一个像 @Component({selector: 'todo-cmp'}) class TodoCmp { @Input() model; @Output() complete = new EventEmitter(); // TypeScript supports initializing fields onCompletedButton() { this.complete.next(); // this fires an event } } 在另一个组件

如果我有一个像

@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”中手动添加事件侦听器,并侦听从ToDoCmp的Dependency注入实例激发的任何单击事件

类似于todoCmp.addEventListener('complete',function(e){})

也许吧?还是ng2中更好的

德克萨斯州


肖恩。

首先,
EventEmitter.next()
从alpha-45左右开始一直是
EventEmitter.emit()

其次,您正在寻找的方法是
.subscribe()


请注意,这些信息在中很容易获得-您应该真正查看它们,因为
EventEmitter
比您习惯的事件侦听器功能更强

thx是的,我现在才知道它的rxjs,所以一切都很好,tx用于answer@born2net如果这回答了你的问题,你能接受它吗?对不起,我如何“接受”它?我确实把它标记为+1。。。但我怎么能接受这是正确的答案呢?有这个按钮吗?我没看到,斯塔克斯
class SomeOtherClass(){
  constructor(todoCmp:TodoCmp){
     todoCmp.complete.subscribe((result)=>{
        //result == arg passed into emit()  
     }))
 }