0

extjs バージョン 3.4 を使用していますが、次の行に 1 つのエラーが表示されます。

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

なぜ Ext.String ではなく String で動作するのか疑問に思われた場合に備えて、それは Ext が JavaScript String オブジェクトにメソッドを追加しているためです。

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

これらの関数は、JavaScript String オブジェクトの静的メソッドとして使用できます。

したがって、Ext が定義する String の他のすべての関数 (トグル、トリムなど) も、Ext.String ではなく String オブジェクトになります。

それがうまくいかなかった理由と将来のために役立つことを願っています。

于 2012-04-10T19:36:53.240 に答える