angular - 在 Angular 运行时更改验证模式
问题描述
我有一个模板驱动的表单,其模式验证工作正常:
<input type="text" [(ngModel)]="model.defaultVal"
name="defaultVal" pattern="[a-zA-Z ]*" />
<div *ngIf="defaultVal.touched || !defaultVal.pristine">
<label *ngIf="defaultVal.control.hasError('pattern')">
Invalid value
</label>
</div>
但我需要的是在运行时改变模式。这可能使用模板驱动的表单吗?
解决方案
您可以像绑定任何其他指令一样绑定模式指令。这里有一个小例子。您可以更改模式或给定值。
<input type="text" [(ngModel)]="pattern" />
<input type="text" [(ngModel)]="defaultVal"
#test="ngModel" [pattern]="pattern" />
<div *ngIf="test.touched || !test.pristine">
<label *ngIf="test.control.hasError('pattern')">
Invalid value
</label>
</div>
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
defaultVal = 'Angular';
pattern = '[a-zA-Z]*';
}
Stackblitz 示例:https ://stackblitz.com/edit/angular-mnvcnx
推荐阅读
- python - 镶木地板文件的大小是否大于字符串数据中的 csv?
- python - 这个 KeyError 是什么意思,我该如何解决?
- python - 如何将大型 .sav 文件转换为 csv 文件
- python - PyCharm 调试器卡在线上
- html - 当模态内容增加时,引导模态的顶部被切断?
- lets-encrypt - Icecast2 - 没有 SSL 功能
- javascript - User.create 不是函数 sequelize
- java - 这会尝试使用资源关闭我的连接吗?
- python - Django NameError:名称'street_address'未定义
- c# - 如何使用 ConfigurationBuilder 从 c# 上的 json 配置文件中获取值?