我使用angular reactive表单来创建一个包含文本字段的表单。
如果字段的数据已经存储,我会预先填充这些字段。现在,我可以允许用户导航到这些表单来编辑字段。
我想在编辑文本字段时调用一个函数,这可能会清除它下面的其他字段。
但我不希望该函数清除文本字段被编程修改时调用的其他字段,在本例中,文本字段是预先填充的。
我如何使用angular reactive forms及其API实现这一点?表单控件(如pristine
或touched
)上的标志同时受用户操作和编程预填充的影响。
发布于 2019-08-17 16:24:06
如果您正在以编程方式修改文本字段,请设置一个额外的布尔值(例如:modifiedProgramatically= true),并检查该布尔值以及表单控件上的标志,如pristine或touched。
发布于 2021-11-12 13:39:25
虽然不完全是角度表单方法,但是非常简单:侦听<input>
上的输入事件,清除回调中的表单字段。
@Component({
template: `<input (input)='onUserInput($event)'>`
})
class Example {
form = new Form({
something: new FormControl('value')
})
onUserInput() {
this.form.controls.something.setValue(null)
}
}
https://stackoverflow.com/questions/57534538
复制相似问题