小编Joh*_*rch的帖子

我可以使用多个@hostlistener 或基于浏览器的事件吗?

我在 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 …

events angular

14
推荐指数
1
解决办法
1万
查看次数

Angular Material Design 上的分页 - 显示页码或删除行数

分页

Angular 6/7,材料设计。

由于我无法访问项目总数,因此项目计数无关紧要(屏幕截图中的框)。

如何完全删除项目计数?或者显示我当前所在的页面而不是项目数?

<mat-paginator
    itemsPerPageLabel="Items per page"
    (page)="changePage()"
    [length]="resultsLength"
    [pageSizeOptions]="[10, 100]">
</mat-paginator>
Run Code Online (Sandbox Code Playgroud)

angular-material2 angular6

5
推荐指数
1
解决办法
9783
查看次数

标签 统计

angular ×1

angular-material2 ×1

angular6 ×1

events ×1