2017-06-13 44 views
0

我最近开始角度2和反应形式的合作。我试图做到的是简单:创建一个表单里的数组,让用户推新对象到它(说的用户地址列表,让用户可以添加新的地址 - 标准FormArray)。这是相当简单的(文档中这一切都说明好),但我想能够自动验证用户的输入,以及。我知道我可以通过简单地推一组这样做:我可以使用空白地址的一行初始化,并有验证

this.formBuilder.group({ 
    country: ['', Validators.required], 
    city: ['', Validators.required], 
    ... 
}) 

,但我有一个表示地址的实例模型,我想用它这样的:

this.formBuilder.group(new Address()) 

这实际上是我现在如何做的(没有验证)。

我的问题是:我可以用一个空白地址的这一行初始化并以某种方式有没有显式定义我验证我每次推新空白地址验证?

如果我的问题不够清楚,我会回答你所有的问题。

+0

您需要手动验证的重复性任务.. –

回答

0

这可能是一个选择:

this.formBuilder.group(new Address(), 
         {validator: (fg: FormGroup) => this.attachValidators(fg)}) 

,基本建立一个自定义的验证,其经过地址收集的个人控制,并设置为期望他们的个人财产验证器。请看下图:?

//helper method 
private attachValidators(address: FormGroup)/*: ValidationErrors */ { 
    for (let ctrlName of Object.keys(address.controls)) { 
     address.get(ctrlName).setValidators(Validators.required); 
    } 
} 

可能太多,如果你考虑验证

+1

这是什么呢?它如何回答这个问题?不要只是脱口而出代码。自己解释一下! https://stackoverflow.com/help/how-to-answer – Rob

相关问题