2017-08-24 62 views
0

我有以下示例代碼:角2化妝形式無效

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 
    } 
} 

所以basicly我檢查輸入在文本字段上是有效的json表達式。 如果我發現錯誤,我想使表單無效。

有沒有辦法做到這一點?

+0

你需要編寫驗證的一樣嗎?設置控制狀態'INVALID' –

+0

@RahulSingh給我一個例子請,我試圖從這裏計算器的其他問題同樣的方法,它並沒有爲我工作 – sHamann

+0

你有一個驗證器設置爲你控制? – Faisal

回答

0

是的,你可以實現它,但它是在模板驅動,這是很多努力,因爲你在這裏使用。

只是你如何實現它的要點。

使用viewchild獲取表單的模板引用。獲取ngForm輸入的表單控件,然後設置setErrorsLINK

有些事情是這樣的,但它只是爲了輸入你可以做整個表單。

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

https://juristr.com/blog/2016/11/ng2-template- driven-form-validators/ – sHamann

+0

我已經知道了,但這不是我目前在這方面的做法 – sHamann

+0

@sHamann然後你的方法是什麼。如果沒有驗證器,您無法將表單設置爲無效。這就是驗證者在那裏的原因。你的情況可能與反應形式,但不能與模板驅動的形式[可能不確定] –