keyup.enter上的Angular 5错误

时间:2018-06-28 13:09:17

标签: angular angular5

我要从4.4升级到5.2

该应用程序运行正常,但在一个屏幕上出现错误

  

TableComponent.html:27错误TypeError:无法读取null的属性'onAndCancel'       在platform-b​​rowser.es5.js:3251       在ZoneDelegate.webpackJsonp ... / .. / .. / .. / zone.js / dist / zone.js.ZoneDelegate.invoke(zone.js:392)       在Zone.webpackJsonp ... / .. / .. / .. / zone.js / dist / zone.js.Zone.run(zone.js:142)       在NgZone.webpackJsonp ... / .. / .. / core / esm5 / core.js.NgZone.runOutsideAngular(core.js:4708)       在KeyEventsPlugin.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-b​​rowser / @ angular / platform-b​​rowser.es5.js.KeyEventsPlugin.addEventListener(platform-b​​rowser .es5.js:3250)       在EventManager.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-b​​rowser / @ angular / platform-b​​rowser.es5.js.EventManager.addEventListener(platform-b​​rowser .es5.js:2395)       在EmulatedEncapsulationDomRenderer2.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-b​​rowser / @ angular / platform-b​​rowser.es5.js.DefaultDomRenderer2.listen(platform-b​​rowser .es5.js:2914)       在BaseAnimationRenderer.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-b​​rowser / @ angular / platform-b​​rowser / animations.es5.js.BaseAnimationRenderer.listen(动画.es5.js:491)       在DebugRenderer2.webpackJsonp ... / .. / .. / core / esm5 / core.js.DebugRenderer2.listen(core.js:15475)       在listenToElementOutputs(core.js:10618)

我将错误跟踪到了一行代码

<tr *ngFor="let row of data; let rowIndex = index"
      ...
      (keyup.enter)="onRowAction(row)"

如果我将其更改为(键),错误消失并且应用程序按预期运行(但它由任何键触发的功能)

绑定到单个键的角度是否有所改变?

2 个答案:

答案 0 :(得分:0)

我将使用(keyup)=“ onRowAction(row,$ event)”,然后检查是否在onRowAction()内部按下了正确的键。

onRowAction(row: any, event: KeyboardEvent) {
    if (event.keyCode === 13) {
        // Do stuffz.
    }
}

答案 1 :(得分:0)

我有兴趣对此进行测试,因此在这里值得进行测试的是使用Angular 5.2的两个小插件:

  1. (keyup.enter)在重复<tr>内的输入元素上 https://plnkr.co/edit/iTbp4oGD4gNb4IVloewF?p=preview

  2. (keyup.enter)在重复的<tr>上,仍然为子DOM元素触发 https://plnkr.co/edit/1AICpyAH4NlXTG9M88zC?p=preview

所以要回答这个问题:不,它尚未更改,仍然可以使用。您遇到的问题必须特定于您的代码。