angular - 有没有办法在响应式表单上编写更少的访问器?
问题描述
我正在使用响应式表单,该表单有 20 个输入。例如一个是这样的
<input formControlName="name" matInput>
因此,现在对于每个输入,我都需要编写一个访问器。像这样的东西
get nameControl(): AbstractControl {
return this.form.get('name');
}
但是我需要为每个输入创建 20 个函数。有没有更快的方法来做到这一点,因为访问器不接受参数?
解决方案
诶,
如果我很好地理解了这个问题,就足以定义一个接受的方法fieldName
:
getControl(name: string): AbstractControl {
return this.form.get(name);
}
或者,如果您想检查控件是否具有特定性,您可以在组件中编写类似的内容:
hasError(fieldName: string, errorLabel: string): boolean {
return this.form.controls[fieldName].errors[errorLabel] !== undefined;
}
并在模板中:
<p *ngIf="hasError('surname', 'required')" class="message is-danger">
The surname is mandatory
</p>
显示错误
推荐阅读
- android - 如何找到默认活动类名称?
- python-3.x - 如何在 aws 客户端上设置配置文件
- asp.net-mvc - Azure Devops:用于为不同客户端独立部署单租户 .Net MVC 应用程序的 YAML 管道
- python - rest api - 这是什么返回数据格式?
- crystal-reports - Crystal Reports (Ver 14) - 提取家庭地址中数组的最后一个值
- wordpress - 如何删除具有变量的特定文本字符串
- python - 在 Python 3.8 中 - 如何从 RecycleView 中搜索我的小部件名称
- angular - 从角度对象中删除空 []
- javascript - 识别印度游客的最简单、最轻松的方法是什么?
- javascript - Javascript可以将变量的值保存到外部源吗?