我在 Angular7 指令中使用 @hostlistener。我可以为此使用多个事件吗?
问题是监听 'keydown' 事件在 Android 之外的任何东西上都没有问题,因为后者没有关键事件。
切换到 'input' 事件解决了这个问题,但不包括 Firefox(可能还有 Edge),因为后者没有 'inputType'(和其他东西)导致实际输入字段允许任何输入。
所以我的目标是能够对 Firefox 和 Edge 使用“keydown”,对其他任何东西使用“input”。那可能吗?
使用 'keydown'、'keypress' 和 'input' 事件
@HostListener('input', ['$event'])
onInput(event: any) {
this.parseKeyDown(event);
}
Run Code Online (Sandbox Code Playgroud)
parseKeyDown(event: any) {
if (event.inputType === 'deleteContentBackward' || event.inputType === 'deleteContentForward') {
let str = this.ngModel.substr(0, this.ngModel.length - 1);
if (str.length === 0) {
str = '0';
}
// handle 'str'
}
...
if (e.inputType === 'insertText' && e.data.match(this.regex)) {
// handle ngModel
}
}
Run Code Online (Sandbox Code Playgroud)
代码缩短以提高可读性。
这适用于除 Firefox/Edge …
Angular 6/7,材料设计。
由于我无法访问项目总数,因此项目计数无关紧要(屏幕截图中的框)。
如何完全删除项目计数?或者显示我当前所在的页面而不是项目数?
<mat-paginator
itemsPerPageLabel="Items per page"
(page)="changePage()"
[length]="resultsLength"
[pageSizeOptions]="[10, 100]">
</mat-paginator>
Run Code Online (Sandbox Code Playgroud)