bugfix> extjs > 投稿

MySQLデータベースを使用するリモートストアがあります。

here is the store definition

Ext.define('rgpd.store.sOutil', {
    extend: 'Ext.data.Store',
    requires: [
        'rgpd.model.mOutil'
    ],
    model: 'rgpd.model.mOutil',
    autoLoad: true,
    autoSync: true,
    pageSize: 0,
    remoteSort: true,
    remoteFilter: true,
    proxy: {
        type: 'ajax',
        api: {
            create: 'data/app.php?class=Outil&action=create',
            read: 'data/app.php?class=Outil&action=read',
            update: 'data/app.php?class=Outil&action=update',
            destroy: 'data/app.php?class=Outil&action=destroy',
        },
        reader: {
            type: 'json',
            root: 'data',
            totalProperty: 'totalCount',
            successProperty: 'success'
        },
        writer: {
            type: 'json',
            writeAllFields: false,
            successProperty: 'success',
            encode: true,
            extraParams: "id",
            idProperty: "id",
            rootProperty: 'data'
        }
    }
});

IDの配列があり、それらを保持したいので、フィルターを適用する必要があります。 2つの異なるソリューションが見つかりましたが、どれも機能しませんでした。最初はfiltreByメソッド

Ext.getStore('sOutil').filterBy(function(record, id) {
    return Ext.Array.contains(ids_intervenant_outils, record.get('id'));
});

このバグを修正すると、Firefoxで「再帰が多すぎます」というエラーが表示されます。だから私はそれを行うために別の方法を試してみて、他のスタックオーバーフローの投稿でこれを見つけました(ここに)しかし、私は Ext.escapeRe gefirefoxによると、「関数ではありません」。私は Ext.String.escapeRegex() を見つけた他の機能を見つけようとしましたFirefoxでもう1つエラーが発生しました。「p.replaceは関数ではありません」

var filterValue = Ext.isArray(ids_intervenant_outils)
    ? new RegExp('^(?:' + Ext.Array.map(ids_intervenant_outils, function(value){return Ext.String.escapeRegex(value)}).join('|') + ')$')
    : values;
Ext.getStore('sOutil').clearFilter(false);
Ext.getStore('sOutil').filter('id', filterValue);

再帰呼び出しのトレースが多すぎます

RegExpGlobalReplaceOptFunc self-hosted:4702:22
[Symbol.replace] self-hosted:4499:24
replace self-hosted:5248:13
encodeString http://localhost/rgpd/extjs6/ext-all.js:22:383387
doEncode http://localhost/rgpd/extjs6/ext-all.js:22:382867
encodeObject http://localhost/rgpd/extjs6/ext-all.js:22:384535
doEncode http://localhost/rgpd/extjs6/ext-all.js:22:383117
encodeObject ...