angular - 带有动态/更新参数的 Angular 7 自定义验证
问题描述
我正在使用带有材料设计组件的 Angular 7
我需要将 requireMatch 验证添加到 mat-autocomplete。
我已经使用参数创建了自定义验证,但参数值确实会动态变化。
下面是我的组件代码。
this.stepFormGroup = this.formBuilder.group({
AccessCode: ["", [Validators.required, this.requireMatch(this.accessCodeList)]]
});
////require-match validation for access-code
requireMatch = (accessCodes: string[]) => {
return (control: FormControl) => {
const selection: any = control.value;
console.log("accessCodes", accessCodes, "selection", selection);
if (accessCodes.indexOf(selection)===-1) {
return { requireMatch: true };
}
return null;
}
}
我面临的问题是我总是在accessCodes
里面变空(init) requireMatch
。
的更改this.accessCodeList
不会反映给验证者。
更改后的含义this.accessCodeList
不会在requireMatch
验证器中获得更新的数组。
所以有人知道如何在自定义验证器中传递动态参数吗?
解决方案
当您像这样调用它时需要绑定验证函数,否则验证器函数将不会绑定输入 accessList
[Validators.required, this.requireMatch(this.accessCodeList).bind(this)]
此外,如果您想限制该字段中的某些单词,您可以在此处查看我的 npm 包之一https://www.npmjs.com/package/ng4-validation
推荐阅读
- python - Django / React Cross-Origin Request Blocked Error 托管 Google App Engine django-cors-headers 不工作
- ruby-on-rails - 无法使用 rails 连接到 mLab 的 MongoDB
- oauth-2.0 - ADFS 客户端凭据授予流与应用程序组中的多个客户端
- r - 基于与 0:0 线的距离的颜色渐变散点图
- apache-camel - 是否可以向 Spring DSL 添加新元素?
- django - 将`select_related`与具有复合主键的表一起使用[Django]
- mysql - 删除行,同时使用 SQL (MySQL) 保留具有最旧日期条目的行
- javascript - 以快递方式发送发布请求时超出最大调用堆栈大小
- .htaccess - .htaccess 重写子域保留原始 url
- powershell - 将日志中的所有空格设置为单个空格