有没有办法将运算符存储为extjs中的变量?我需要这个过滤。我知道operators
中的filter
配置,但由于原因太复杂,我不得不使用filterFn
。
所以,假设我有这个过滤器对象:
filterObj.property = 'price';
filterObj.value = input;
filterObj.operator = opVar;
filters.push(filterObj);
store.addFilter(filters);
在这里,我可以传递一个类似'<&#;&#;;'>'等opVar
,它将变成一个比较运算符。这非常有效。
我需要的是filterFn
中相当于此的内容。我如何在那里使用opVar
。
作为最后的手段,我认为我必须使用switch
。还有其他想法吗?
答案 0 :(得分:0)
这是我最终使用的,使用jrajav给出的答案here.
var operate = {
'>': function(a,b) {return a>b ;},
'>=': function(a,b) {return a>=b ;},
'<': function(a,b) {return a<b ;},
'<=': function(a,b) {return a<=b ;},
'==': function(a,b) {return a==b ;},
'=': function(a,b) {return a==b ;},
'!=': function(a,b) {return a!=b ;},
'<>': function(a,b) {return a!=b ;}
};
然后你可以这样做:
var greater = '>';
var a= 10;
var b = someValue;
operate[greater](a,b);