ElemeFE / element-angular

Element for Angular
https://element-angular.faas.ele.me
MIT License
530 stars 121 forks source link

怎么处理表单验证? #90

Closed scgy5555 closed 6 years ago

scgy5555 commented 6 years ago

Issue Type:

Version & Environment:
0.7.0

Description: 组件文档里的form表单不能触发invalid状态变化,应该怎么做表单验证的处理?用什么值进行判断是否通过验证?

unix commented 6 years ago

你可以看一下 NG 的响应式表单文档,同时也看一下 Element Angular 文档。 这里没有触发 valid 的状态是因为示例中的 validator 返回了一个对象引起的,你可以跟着官方的来或者用Element Angular 示例中的 statusCtrl 方法来验证。具体如何取舍看你的抽象方式了。

scgy5555 commented 6 years ago

是的,我看到了它返回了一个对象,如果用statusCtrl的方式,是不是就不能使用FormItem组件的验证消息了

gaomingen commented 6 years ago

监听form表单值得变化 ;

valid = false ; //对应validateForm.valid false默认验证失败 this.validateForm.valueChanges.subscribe((res) => { this.valid = true; A:for (const key in this.validateForm.controls) { const item = this.validateForm.controls;
//验证有异常时不通过验证 if (item[key].errors && item[key].errors.status && item[key].errors.status === 'error') { this.valid = false; break A; } } });

unix commented 6 years ago

@gaomingen 👍