我想验证myObject.total
是否等于所有myObject.subObjects
的值之和
这是我的模型
export interface MyObject {
// some unimportant fields first, then:
subObjects: MySubObject[],
total: number,
}
export interface MySubObject {
value: number;
}
这是我的表格
this.form = new FormGroup({
// simple validation rules for unimportant fields, then:
myGroup: new FormGroup({
total: new FormControl({value: ''}),
subObjects: new FormControl(this.myObject.subObjects)
}, CustomValidators.myCustomValidator)
我制作了自定义验证器myCustomValidator(group: FormGroup)
,它接受表单组,提取必要的值,如+group.controls['total'].value
并进行必要的验证,但我很难将其注册到列表中。每当我修改total
绑定的输入时它都可以正常工作,但是当我添加/删除subObjects
这是我的 HTML (重要位)
<input [(ngModel)]="myObject.total" name="total" [formControl]="form.controls.myGroup.controls.total">
<input [(ngModel)]="myObject.subObjects" name="subObjects" [formControl]="form.controls.myGroup.controls.subObjects" type="hidden">
// here is mechanism for viewing / adding / removing subObjects, bound to [(ngModel)], but not bound to form
我不喜欢这个绑定整个列表到一个隐藏的输入,我觉得它是错的,但我不知道如何正确地做到这一点。