我使用反应式表单并尝试重设5个特定字段,但是我的表单会监听所有更改并发送请求。如果我重置5个字段,我的表单将发送5个请求。但在所有更改之后,我只想发送一个请求。
this.subs = form.get('city').valueChanges.subscribe(city => {
form.get('property').reset(null, {
emitEvent: false,
onlySelf: true
});
form.get('cars').reset(null, {
emitEvent: false,
onlySelf: true
});
form.get('tariff').reset(null, {
emitEvent: false,
onlySelf: true
});
form.get('version').reset(null, {
emitEvent: false,
onlySelf: true
});
});
我做错了什么?
PS:我使用ngx-formly来组织表单。
答案 0 :(得分:0)
您提供的东西之外的东西一定是导致问题的原因。像这样的东西工作正常:
form = new FormGroup({
a: new FormControl('a'),
b: new FormControl('b'),
c: new FormControl('change me'),
});
ngOnInit() {
this.subs = [
this.form.valueChanges.subscribe(v => console.log('form value change', v)),
this.form.get('c').valueChanges.subscribe(() => {
console.log('reset');
this.form.get('a').reset('d', { emitEvent: false });
this.form.get('b').reset('e', { emitEvent: false });
}),
];
}
这是一个有效的堆叠闪电战:https://angular-awifgk.stackblitz.io