Fer*_*ndo 3 angular2-forms angular2-formbuilder angular
每当表单发生更改时,我都想取消选中一个复选框。该复选框是该表单的一部分,因此我只想取消选中该复选框以外的其他任何控件来更改值时。
我正在订阅这样的FormGroup的值更改
import { FormBuilder, FormGroup } from '@angular/forms';
export class App {
form : FormGroup;
constructor(private formBuilder: FormBuilder) {
this.form = formBuilder.group({
firstName: 'Thomas',
lastName: 'Mann',
... many more fields ...
checkbox: true
})
this.form.valueChanges.subscribe(data => {
//if valueChange was not triggered by change in the checkbox
this.form.get('checkbox').setValue(false);
})
}
}
Run Code Online (Sandbox Code Playgroud)
我可以分别在每个其他控件中订阅valueChanges,但要避免这样做
小智 5
使用嵌套表单组...将所有其他formControl分组为单个formGroup,要在其上更新复选框值...
例如 :
import { FormBuilder, FormGroup } from '@angular/forms';
export class App {
form : FormGroup;
constructor(private formBuilder: FormBuilder) {
this.form = formBuilder.group({
'otherFormField': this.fb.group({
firstName: 'Thomas',
lastName: 'Mann',
... many more fields ...
}),
checkbox: true
})
this.form.otherFormField.valueChanges.subscribe(data => {
//if valueChange was not triggered by change in the checkbox
this.form.get('checkbox').setValue(false);
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |