javascript - Angular 11 输入验证
问题描述
我想在 Angular 11 中实现自定义验证。
我的 component.ts 如下:
import { Component, OnInit } from '@angular/core';
import { FormControl, PatternValidator } from '@angular/forms';
@Component({
selector: 'app-microplate',
templateUrl: './microplate.component.html',
styleUrls: ['./microplate.component.css']
})
export class MicroplateComponent {
columns = new FormControl('', isValid(???));
isValid(???) {
return some logic based on the ???;
}
}
我的component.html如下(没有任何标签。就像这里所示):
<label for="columns"><b>Columns: </b></label>
<input id="columns" type="text" [formControl]="columns">
在上面的代码中,由 ??? 我的意思是列字段的值,但我不知道如何将列字段的值发送到 isValid() 方法。即使在谷歌搜索数小时后,我也不知道如何进行自定义验证。如果 isValid() 方法返回 false,我还想在 component.html 中显示错误消息,但我不知道该怎么做。
解决方案
文档中已经很好地解释了定义自定义验证器
import { AbstractControl, ValidatorFn } from "@angular/forms";
export function isValid(): ValidatorFn {
return (control: AbstractControl): { [key: string]: any } => {
// ??? <--> control.value
};
}
推荐阅读
- node.js - 是否可以更改鼠标指针或添加一个 div 并让它跟随 Shopify 中的鼠标?
- rust - 不清楚如何为枚举类型添加命名生命周期参数
- android-security - onShowFileChooser 和 setAllowFileAccess 的关系
- python - 从没有键的嵌套列表中的字典中获取值
- node.js - 如何使用云功能将 Stripe 客户 ID 添加到 Firestore 中的用户数据?
- python - 登录无效时如何显示错误消息?
- python - 使用 Python (Tkinter) 的计数方法
- mysql - 为什么等号在 SQL 中不起作用,因为相同的日期被提取为大于和小于
- python - 如果 Python 中的 AssertionError
- tailwind-css - Tailwind css溢出下拉问题