0

我正在使用 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);
        }
    }
});
4

1 回答 1

0

以防万一您想知道为什么它使用 String 而不是 Ext.String 是因为 Ext 正在将方法添加到 JavaScript String 对象。

http://docs.sencha.com/ext-js/3-4/#!/api/String

这些函数可用作 JavaScript String 对象的静态方法。

因此,Ext 定义的所有其他 String 函数(切换、修剪等)也将在 String 对象上而不是 Ext.String 上。

希望这有助于为什么它不工作和未来。

于 2012-04-10T19:36:53.240 回答