为什么primeng p-table元素在编辑行时会抛出错误但仍然更新记录?

问题描述 投票:0回答:1

我指的是以下 primeng p 表示例:

url:https://primeng.org/table#Edit(单击右上角的 stackblitz 图标,如下图以蓝色突出显示)

如您所见,我是否将价格更新为无效值然后单击复选标记,

显示 toast 错误消息,但仍然更新记录!

如何防止这种情况发生?

非常感谢。

angular primeng p-table
1个回答
0
投票

这是打字稿没有进行运行时类型检查的结果。价格的 ngModel 绑定到product.price。例如,当用户在 price 字段中输入字符串时,ngModel 会更新,即使 string 类型与 number 类型不兼容。 Typescript 并不关心,因为它不会在运行时检查类型。在 onRowEditSave() 方法中,程序检查 Product.price 是否大于零。当product.price 是字符串时,情况并非如此。因此,该语句的计算结果为 false,并且程序会抛出错误“无效价格”。

要解决此问题,您可以使用 p-inputNumber 而不是使用带有 pInputText 指令的常规输入。 inputNumber 组件不允许用户输入普通文本,只能输入数字。

© www.soinside.com 2019 - 2024. All rights reserved.