所以例如我有以下输入:
<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"
,我需要一种方法来捕获错误,这会检测到输入无效。
我能做些什么来实现这一目标,还是有比我的尝试更好的方式?
答案 0 :(得分: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搜索表达式。