例如,我有以下输入:
<input type="text" name="field1" [(ngModel)]="rule['condition']">
在此输入字段中,以下输入是否有效 saleschannel.totalamount > 15 . 目前,我用 jmespath.search({ } , 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" 我需要一种方法来捕捉错误,它会检测到输入无效。
[class.invalid]="XXX"
我能做些什么来实现这一点,或者有比我的尝试更好的方法吗?
很早以前就开始工作了,但忘了回答我自己的问题。
组成部分html
<input type="text" (ngModelChange)="ValidateJMES($event)" [class.valid]="isValid">
public jmespath = require('../../assets/jmespath.js'); public valid: bool; ValidateJMES(newValue){ try { this.jmespath.search({ } , newValue); valid = true; } catch(e) { valid = false; } }
通过这种方式,您可以检查输入是否是有效的jmespath搜索表达式。