我要从4.4升级到5.2
该应用程序运行正常,但在一个屏幕上出现错误
TableComponent.html:27错误TypeError:无法读取null的属性'onAndCancel' 在platform-browser.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-browser / @ angular / platform-browser.es5.js.KeyEventsPlugin.addEventListener(platform-browser .es5.js:3250) 在EventManager.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-browser / @ angular / platform-browser.es5.js.EventManager.addEventListener(platform-browser .es5.js:2395) 在EmulatedEncapsulationDomRenderer2.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-browser / @ angular / platform-browser.es5.js.DefaultDomRenderer2.listen(platform-browser .es5.js:2914) 在BaseAnimationRenderer.webpackJsonp ... / .. / .. / .. / ng2-notify-popup / node_modules / @ angular / platform-browser / @ angular / platform-browser / 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)"
如果我将其更改为(键),错误消失并且应用程序按预期运行(但它由任何键触发的功能)
绑定到单个键的角度是否有所改变?
答案 0 :(得分:0)
我将使用(keyup)=“ onRowAction(row,$ event)”,然后检查是否在onRowAction()内部按下了正确的键。
onRowAction(row: any, event: KeyboardEvent) {
if (event.keyCode === 13) {
// Do stuffz.
}
}
答案 1 :(得分:0)
我有兴趣对此进行测试,因此在这里值得进行测试的是使用Angular 5.2的两个小插件:
(keyup.enter)
在重复<tr>
内的输入元素上
https://plnkr.co/edit/iTbp4oGD4gNb4IVloewF?p=preview
(keyup.enter)
在重复的<tr>
上,仍然为子DOM元素触发
https://plnkr.co/edit/1AICpyAH4NlXTG9M88zC?p=preview
所以要回答这个问题:不,它尚未更改,仍然可以使用。您遇到的问题必须特定于您的代码。