Angular 2使表单无效

时间:2017-08-24 10:06:32

标签: javascript json angular angular-forms jmespath

我有以下示例代码:

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表达式。 如果我发现错误,我想使表格无效。

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:1)

是的,你可以实现它,但在模板驱动方面付出的努力就像你在这里使用的那样。

只是你如何实现它的要点。

使用viewchild获取表单的模板引用。从ngForm获取输入的控件输入,然后设置setErrorsLINK

有些事情是这样的,但它只是输入你可以为整个表格做。

<input #model="ngModel" [ngModel]="value">
<button (click)="model.control.setErrors({})">Invalidate</button>