Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 具有不同验证的按钮_Angular_Angular Reactive Forms_Reactive_Onsubmit_Angular2 Form Validation - Fatal编程技术网

Angular 具有不同验证的按钮

Angular 具有不同验证的按钮,angular,angular-reactive-forms,reactive,onsubmit,angular2-form-validation,Angular,Angular Reactive Forms,Reactive,Onsubmit,Angular2 Form Validation,我在考虑用反应形式做一个简单的形式 我想我会遇到的问题是,当我在表单上有两个按钮时,它们需要不同的验证 例如,Andy向Bobby提交请求。然后,Bobby通过单击“批准”来批准请求,或者通过单击“拒绝”来拒绝请求 然而。。。拒绝将要求填写注释字段。不向表单添加更多字段的最佳方法是什么 而且它是动态的,每个按钮需要验证的字段可能会改变,所以我不能只是在按钮上烘焙不同的代码 我希望这两个按钮都可以单击,以便用户可以看到哪些验证符合或不符合要求。根据我对您问题的理解,我认为有两种可能性,都可以通过“

我在考虑用反应形式做一个简单的形式

我想我会遇到的问题是,当我在表单上有两个按钮时,它们需要不同的验证

例如,Andy向Bobby提交请求。然后,Bobby通过单击“批准”来批准请求,或者通过单击“拒绝”来拒绝请求

然而。。。拒绝将要求填写注释字段。不向表单添加更多字段的最佳方法是什么

而且它是动态的,每个按钮需要验证的字段可能会改变,所以我不能只是在按钮上烘焙不同的代码


我希望这两个按钮都可以单击,以便用户可以看到哪些验证符合或不符合要求。

根据我对您问题的理解,我认为有两种可能性,都可以通过“反应式表单api”处理:

  • 将控件动态添加到表单中(例如:当用户选中“已拒绝”时,会出现一个新的注释字段) =>使用FomGroup类的addControl/removeControl方法

  • 向已经存在的控件动态添加验证程序(例如:当用户单击“拒绝”提交按钮时,注释字段bacomes required) =>使用AbstractControl类的setValidators方法

另外,不要忘记在修改控件或验证器后调用updateValueAndValidity方法(AbstractControl类),否则将无法检测到更改

以下是一篇关于这一主题的优秀文章:

动态添加验证听起来似乎对我有用,谢谢!