0

各ストアのモデルが同じである同じ json から、異なるストアを維持できるようにしたいと考えています。各ストアは、ルート プロパティの割り当てに基づいて更新する必要があります。サンプルの json、ストア、およびモデルについては、以下を参照してください。この場合、各ストアは json のルート プロパティ値 (カテゴリ 1、カテゴリ 2 など) に基づいて更新されます。目標は、setProxy を呼び出して単一のストアの URL 設定を変更するのではなく、アプリケーション内のネストされたリストをその場で別のストアにバインドできるようにすることです。また、json はこの形式である必要があります。ご協力いただきありがとうございます。ご不明な点がございましたら、ご不明な点がございましたらお知らせください。

ジョンソン:

{
    "items": [
        {
            "name": "category 1",
            "status": "",
            "displaytext": "",
            "items": [
                {
                    "name": "",
                    "status": "",
                    "displaytext": "",
                    "items": [
                        {
                            "name": "",
                            "status": "",
                            "displaytext": "",
                            "items": [
                                {
                                    "name": "",
                                    "status": "",
                                    "displaytext": "",
                                    "leaf": true
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        {
            "name": "category 2",
            "status": "",
            "displaytext": "",
            "items": [
                {
                    "name": "",
                    "status": "",
                    "displaytext": "",
                    "items": [
                        {
                            "name": "",
                            "status": "",
                            "displaytext": "",
                            "leaf": true
                        }
                    ]
                }
            ]
        },
        {
            "name": "cateory 3",
            "status": "",
            "displaytext": "",
            "items": []
        },
        {
            "name": "category 4",
            "status": "",
            "displaytext": "",
            "items": []
        }
    ]
}

モデル:

Ext.define('MyApp.model.myModel', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            {
                name: 'name',
                type: 'string'
            },
            {
                name: 'status',
                type: 'string'
            },
            {
                name: 'displaytext',
                type: 'string'
            }
        ]
    }
});

ストア 1、2、3 など:

Ext.define('MyApp.store.storeCategory1', {
    extend: 'Ext.data.TreeStore',
    requires: [
        'MyApp.model.myModel'
    ],

    config: {
        model: 'MyApp.model.myModel',
        storeId: 'myStore',
        autoLoad: false,
        proxy: {
            type: 'ajax',
            url: '/path/to/file.json',
            reader: {
                type: 'json',
                rootProperty: 'items'
            }
        }
    }
});
4

1 に答える 1

0

ストアのプロキシとは独立してサーバー要求を行うのが最善の策だと思います。成功したら、必要に応じてデータを異なるストアに分割します。特に、1 つの大きなデータ レスポンスを複数のデータ ストアに分割する必要がある場合は、この方法でデータを前処理しても問題ありません。例えば:

Ext.Ajax.request({
    url: 'path/to/file.json',
    success: function(response){
        // process server response here
        var json = Ext.decode(response.responseText);
        for(var i=0, l=json.items.length, i<l; i++){
            // start distributing the data to your different stores here
        }
    }
});

お役に立てれば。

于 2012-10-15T18:57:50.317 に答える