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

很久以前就开始工作了,但忘了回答我自己的问题。

组件.html

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

组件.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 回答