【发布时间】:2018-12-03 15:09:53
【问题描述】:
我正在使用 Angular 5 和响应式表单,mi 表单是使用后端提供的 JSON 动态创建的,有一些嵌套 3 级的特殊输入,它适用于单选按钮,但是当输入是一组嵌套复选框,补丁值不会改变复选框的值,这是 mi 结构的一个示例
this.cvForm = this._fb.group({
name: ['', [Validators.required]],
lastname: ['', [Validators.required]],
nested: this._fb.group({
level1: this._fb.group({
level2: this._fb.group({
level3: this._fb.group({
checkbox: [false, Validators.required]
})
})
}),
}),
});
}
this.cvForm
.get([
'nested',
this.nested,
'level1',
this.level1,
'level2',
this.level2,
'level3',
this.level3,
'components',
checkbox
]).patchValue({ checked: setValue });
编辑:
我一直在用你们提供的示例进行大量测试,感谢你们提供的所有帮助。但是我看到补丁值它没有保存o在第一次单击时更改值,当我在视图更改后单击复选框但表单中的值仍然为false并且第二次单击复选框将表单中的值设置为true ,但是视图发生了变化,基本上补丁值和设置值正在设置值,直到第二次单击表单。我不知道为什么会这样。
【问题讨论】:
-
你是如何使用补丁值的?
-
您尝试设置值的数据是什么?
-
我编辑代码,@SachinGupta 并添加补丁行,这就是我们如何使用补丁值。
-
@SiddAjmera 我正在尝试使用布尔值设置值。
-
@GeekDev,我已经更新了我的答案。请检查这是否适合您。