是否有内置的 Angular lostfocus 事件?
Is there a built-in Angular lostfocus event?
所以我继续实施自定义指令:
@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 的解决方案。我也一直在看 official docs。我问的原因是因为使用这样一个高级框架感觉有点过度设计和不自然。
例如,您不必制作自定义指令来侦听点击事件:
<button type="button" (click)="somemethod()"></button>
我写这个问题是为了确保我做对了,我没有重新发明轮子。我期待这样的答案:
- 是的,你做对了,没有这样的事情因为:...
- 不,你失踪了......
编辑:
它实际上被记录在案 here。
您可以使用 (blur)="numberLostfocus($event)"
来达到同样的目的。这是 built-in。
所以我继续实施自定义指令:
@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 的解决方案。我也一直在看 official docs。我问的原因是因为使用这样一个高级框架感觉有点过度设计和不自然。
例如,您不必制作自定义指令来侦听点击事件:
<button type="button" (click)="somemethod()"></button>
我写这个问题是为了确保我做对了,我没有重新发明轮子。我期待这样的答案:
- 是的,你做对了,没有这样的事情因为:...
- 不,你失踪了......
编辑:
它实际上被记录在案 here。
您可以使用 (blur)="numberLostfocus($event)"
来达到同样的目的。这是 built-in。