Angular2如何在组件代码中订阅事件?

Angular2如何在组件代码中订阅事件?,angular,Angular,我有一个带有输出事件的[boolean]指令: @Output()booleanChanged=neweventemitter(); ... this.booleanChanged.emit(值); 在我看来: 我想从组件的代码而不是视图中订阅此事件 有办法吗?@Output()事件只能由(myoutput)=“…”绑定使用 您可以发出自定义DOM事件。DOM事件冒泡,可以从父组件侦听 类布尔指令{ 构造函数(私有elRef:ElementRef){} emit事件(){ final ev

我有一个带有
输出
事件的
[boolean]
指令:

@Output()booleanChanged=neweventemitter();
...
this.booleanChanged.emit(值);
在我看来:


我想从组件的代码而不是视图中订阅此事件

有办法吗?

@Output()
事件只能由
(myoutput)=“…”绑定使用

您可以发出自定义DOM事件。DOM事件冒泡,可以从父组件侦听

类布尔指令{
构造函数(私有elRef:ElementRef){}
emit事件(){
final event=new CustomEvent('mycustomevent',{detail:'abc',bubbles:true});
this.elRef.nativeElement.dispatchEvent(事件)
}
}
@HostListener('mycustomevent',['$event']))
myCustomEventHandler(事件){
...
}

另请参见

是否有办法在多个指令中共享此自定义事件?您确切地说“共享”是什么意思?我想从多个指令中触发同一事件(并订阅一次),仅使用像“mycustomevent”这样的名称就够了吗?确切地说。这只是关于要匹配的事件名称字符串。对此表示抱歉。您只需使用
var
。我相信它会起作用的。我自己不使用TypeScript,但希望它能工作。