我想知道Angular 4中是否有两个输出事件可以调用1个函数?
<input type="button" value="send" (click, keydown.enter)="doMagic()"/>
而不是
<input type="button" value="send" (click)="doMagic()" (keydown.enter)="doMagic()"/>
@HostListener不是一个选项。
感谢您的帮助!
答案 0 :(得分:3)
它似乎并非如此 - 至少不是从这个问题中要求它作为一个功能:https://github.com/angular/angular/issues/6675
答案 1 :(得分:2)
替代解决方案 - 可能值得考虑。
模板:
<input #send type="button" value="send" />
组件:
@ViewChild('send') sendElement: ElementRef;
sub: Subscription;
ngAfterViewInit() {
this.sub = Observable.fromEvent('click', this.sendElement)
.merge(Observable.fromEvent('keydown.enter', this.sendElement))
.map(t=> this.doMagic()).subscribe();
}
ngOnDestroy() {
this.sub.unsubscribe();
}
doMagic() {
...
}