0

たとえば、次の入力があります。

<input type="text" name="field1" [(ngModel)]="rule['condition']">

この入力フィールドには、次の入力が有効ですsaleschannel.totalamount > 15。現時点では、検証をテストしていjmespath.search({ } , rule['condition'])ます。

だから私は次のコード部分を持っています

<input type="text" name="field1" [(ngModel)]="rule['condition']"
[class.valid]="jmespath.search({ } , rule['condition'])"> 

これに関する問題は、私の入力が構文エラーの有効な原因ではない場合、コンソールエラーが発生することです。したがって[class.invalid]="XXX"、入力が無効であることを検出するエラーをキャッチする方法が必要です。

これを達成するために何ができますか、それとも私の試みよりも良い方法がありますか?

4

1 に答える 1

0

ずっと前にうまくいきましたが、自分の質問に答えるのを忘れていました。

component.html

<input type="text" (ngModelChange)="ValidateJMES($event)" [class.valid]="isValid">

component.ts

public jmespath = require('../../assets/jmespath.js');
public valid: bool;

ValidateJMES(newValue){
    try {
        this.jmespath.search({ } , newValue);
        valid = true;

    } catch(e) {
        valid = false;
    }
}

このようにして、入力が有効な jmespath 検索式であるかどうかを確認できます。

于 2018-06-27T10:15:08.107 に答える