我正在使用extjs版本3.4,我在这一行中收到一个错误:
var query = new RegExp(Ext.String.format('field1', e.query.replace(/\?/g, '[A-Za-z0-9]')));
like--Uncaught TypeError: Cannot call method 'format' of undefined
我添加了这样的听众,请告诉我这是否有任何错误。
this.findById('field1').addListener({
beforequery: function (e) {
if (e.query && e.query.indexOf('?') != -1) {
e.cancel = true;
var query = new RegExp(Ext.String.format('field1', e.query.replace(/\?/g, '[A-Za-z0-9]')));
this.expand();
this.store.clearFilter(true);
this.store.filter(this.displayField, query);
}
}
});
答案 0 :(得分:0)
万一你想知道它为什么使用String而不是Ext.String,这是因为Ext正在将方法添加到JavaScript String对象中。
http://docs.sencha.com/ext-js/3-4/#!/api/String
这些函数在JavaScript上作为静态方法提供 字符串对象。
因此Ext定义的字符串的所有其他函数(切换,修剪等)也将在String对象上,而不是Ext.String。
希望这有助于解决为什么它不起作用和未来。