【问题标题】:How to add validators in angular table?如何在角度表中添加验证器?
【发布时间】:2021-11-08 16:59:11
【问题描述】:

我对 angular 非常陌生。我制作了一个 angular 表,单击表数据后,我们可以编辑该数据。现在我想向它添加验证器,如果用户编辑“碳水化合物”字段(例如),他/她将只能输入数字,如果他们输入任何其他字符,他们将无法添加它。

这是stackblitz的链接

https://stackblitz.com/edit/implementing-edit-in-place-in-angular-xjw5sh?file=src%2Fapp%2Fapp.component.ts

提前感谢您的帮助。

【问题讨论】:

标签: angular typescript angular-material angular-forms angular-validation


【解决方案1】:

有两种方法可以将验证器添加到您的表中。

  1. 如果您使用反应式表单 [https://angular.io/guide/reactive-forms][1],那么您可以在初始化时简单地添加它 例如

    公共表单 = new FormGroup({ 名称:新的 FormControl('约翰', { 验证器:[Validators.required], asyncValidators:[customAsyncValidator] } );

或者你也可以动态地this.form.get('name').addValidators(Validators.required); this.form.get('name').addAsyncValidators(customAsyncValidator);

2)如果您使用模板驱动的表单,您应该创建 @Directive 并将其导入您的模块,然后您可以在模板中使用它。

【讨论】:

  • 但是我可以在span中做吗?检查链接
  • 当然,您可以动态进行。您不需要在模板中执行此操作,只需在 ts 文件中添加验证器即可。您可以使用功能来实现它,例如私人 addValidatorsToAllControls(): void { this.formGroup.controls.forEach((control: FormControl) => { control.addValidators(Validators.minLength(4)); control.updateValueAndValidity(); });也不要忘记为您的模板添加错误处理,例如
    名称长度必须至少为 4 个字符。
猜你喜欢
  • 2021-08-06
  • 1970-01-01
  • 2018-11-09
  • 1970-01-01
  • 2016-08-23
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多