未捕获的TypeError:无法调用方法'格式'未定义的

时间:2012-04-10 05:01:17

标签: extjs extjs3

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

1 个答案:

答案 0 :(得分:0)

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

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

  

这些函数在JavaScript上作为静态方法提供   字符串对象。

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

希望这有助于解决为什么它不起作用和未来。