我有以下示例代码:
component.html
<form onsubmit="" #VoucherForm="ngForm">
<input type="text" name="field1" [(ngModel)]="rule['condition']"
(ngModelChange)="validateJMES($event)">
<form>
component.ts
validateJMES(value){
try {
this.jmespath.search({ }, value);
} catch (e) {
// Code that makes Form invalid
}
}
所以基本上我检查文本字段上的输入是否是有效的json
表达式。
如果我发现错误,我想使表格无效。
有办法做到这一点吗?
答案 0 :(得分:1)
是的,你可以实现它,但在模板驱动方面付出的努力就像你在这里使用的那样。
只是你如何实现它的要点。
使用viewchild
获取表单的模板引用。从ngForm获取输入的控件输入,然后设置setErrors
。 LINK
有些事情是这样的,但它只是输入你可以为整个表格做。
<input #model="ngModel" [ngModel]="value">
<button (click)="model.control.setErrors({})">Invalidate</button>