javascript - Angular Reactive Form:嵌套表单的设置/修补值
问题描述
我有一个类似于这样的表单结构:
itemEntities: [
{customisable: [{food: {..}, quantity: 1}, {food: {..}, quantity: 5}]},
{customisable: [{food: {..}, quantity: 0}]},
]
我正在尝试使用新的数量值设置值/补丁值。我已经初始化了值为 0 的数量。
但是,当我尝试传入一个变量时
this.toggleForm.controls.itemEntities.controls[i]
.controls.customisable.controls[j].controls.quantity.setValue(quantity);
在 setValue 中,数量始终计算为 0。在尝试设置值之前,我尝试 console.log out 数量,它返回了正确的值。此外,检查 typeof 数量表示数量是一个数字。不知何故,如果我尝试 .setValue(5) 即使用数字而不是变量名,它会设法正确设置表单上的值。
关于如何正确设置值的任何建议?
解决方案
设定值
有必要提到方法内部的所有控件。如果不这样做,它将引发错误。
补丁值
您还可以设置单个值
你应该.patchValue
使用
formgroup.patchValue({quantity:quantity});
推荐阅读
- javascript - 如何在我设计的 html 页面中使用快照/查询快照显示/显示从数据库获取的数据?
- javascript - 即使 CORS 配置为允许访问,也未发送 Http cookie
- sass - 包裹导入安装到node_modules的material-components-web scss文件不起作用
- flutter - 如何使用 https 在本地运行 Flutter Web 应用程序?
- matlab - 这个for循环可以矢量化以提高速度吗
- r - 使用 lapply 通过自定义函数传递数据帧变量时出错
- c++ - 一个程序来判断一个单词是否是回文
- javascript - 回调函数不适用于 js
- java - JSON到java的转换
- javafx - 为什么这个 JavaFX 双向绑定不起作用