是否有内置的Angular失焦事件?

时间:2019-06-05 06:48:59

标签: angular angular-directive custom-directive

所以我继续执行了一个自定义指令:

@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。我要问的原因是,使用这种高级框架感觉有点过分设计和不自然。

例如,您无需做出自定义指令即可监听click事件:

<button type="button" (click)="somemethod()"></button>

我写了这个问题,以确保我做得对,并且我没有重新发明轮子。我希望得到像这样的答案:

  • 是的,您做对了,没有这样的事情,因为:...
  • 不,你不见了...

编辑:

它实际上已记录在here中。

1 个答案:

答案 0 :(得分:0)

您可以将(blur)="numberLostfocus($event)"用于相同的目的。它是内置的。