如何在Angular 2中正确验证集合/列表/数组?

时间:2016-12-28 12:43:47

标签: validation angular angular2-template angular2-forms

我想验证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

我不喜欢这个绑定整个列表到一个隐藏的输入,我觉得它是错的,但我不知道如何正确地做到这一点。

0 个答案:

没有答案