我正在ionic2中创建一个表单,其中字段会根据用户动态更改的类别进行更改。
如果选择字段类别为A
然后需要一些字段,例如start_date和time
但是对于B类,只需要start_date
和C都不是必需的。
我在ionic2中使用FormBuilder
并验证如下:
this.logForm = formBuilder.group({
'start_date': ['', Validators.compose([Validators.maxLength(30),
Validators.required])],
'time': ['', Validators.compose([Validators.maxLength(30),
Validators.required])],
});
我在这样的警报结果中获取所选类别:
category(){
var options = {
title: 'Choose a task category',
inputs: [],
message: 'Which category do you like?',
buttons: [
{
text: 'Cancel',
role: 'cancel',
handler: () => {
console.log('Cancel clicked');
}
},
{
text: 'Ok',
handler: data => {}
}
]
}
}
在'Ok'的处理程序中,我可以成功检索所选类别。
所以我的问题是如何根据用户在应用程序中选择的类别动态应用验证。
答案 0 :(得分:1)
您可以尝试在formgroup api中使用setControl函数。
例如,在类别的数据处理程序中:
()=>{
this.logForm.setControl('start_date',new FormControl('',Validators.required);
}
formControl here
的API