所以我继续实施了一个自定义指令:
@Directive({ selector: 'input[applostfocus]' })
export class LostFocus {
@Output()
applostfocus = new EventEmitter<any>();
@HostListener('focusout', ['$event.target' ])
focusout(input) {
this.applostfocus.emit(input);
}
}
它监听onfocusout
DOM Event并发出一个事件。
如果它包含在模块中,则可以这样使用:
<input type="number" (applostfocus)="numberLostfocus($event)"></input>
public numberLostfocus($event) {
console.log("applostfocus");
}
但是我的问题是:在 Angular 7 中真的@Directive
不存在这样的东西吗?
我在网上搜索过,只有 AngularJS 的解决方案。另外我一直在看官方文档。我之所以这么问,是因为使用这样一个高级框架感觉有点过度设计和不自然。
例如,您不必制作自定义指令来监听点击事件:
<button type="button" (click)="somemethod()"></button>
我写这个问题是为了确保我做对了,并且我没有重新发明轮子。我希望得到这样的答案:
- 是的,你做得对,没有这样的事情,因为:......
- 不,你失踪了……
编辑:
它实际上记录在这里。