3

APP.store.Posts3回インスタンス化したいお店があります。これらはすべて同じタイプのデータを保持しますが、リロード、ページングなどの際に異なるパラメーターを使用します。コントローラーでは、onLaunch関数でこれを行います。

onLaunch: function() {

    Ext.create('APP.store.Posts',{
        storeId: 'unclassifiedPosts'
    });
    Ext.create('APP.store.Posts',{
        storeId: 'positivePosts'
    });
    Ext.create('APP.store.Posts',{
        storeId: 'negativePosts'
    });
},

その後beforerender、コントローラーで作成したリスナーメソッドで、次のようにします。

beforeRenderPostsGrid: function(grid) {
    var store = Ext.getStore('unclassifiedPosts');
    store.load();
},
beforeRenderPositivePostsGrid: function(grid) {        
    var store = Ext.getStore('positivePosts');
    store.getProxy().extraParams = {'some_param' : 'some_value'};
    store.load();
    var checkOtherStore = Ext.getStore('unclassifiedPosts'); //THIS STORE NOW HAS SAME PARAMS AS positivePosts STORE
},

問題は、どちらのbeforerrenderグリッドが最後に呼び出されても、3つのストアすべてにそれらのパラメーターがあることです。したがって、初期ロードは問題ありませんが、更新やページングなどを行うと、すべて同じデータが表示されます。各ストアのプロキシには、どういうわけか同じextraParamがあります。

私が理解したことから、storeIdパラメーターは私のストアをユニークにするはずだったので、私はステップを逃していますか?

4

1 に答える 1

1

私はこれと同じ問題に遭遇しました。私のストアインスタンス一意でしたが、何らかの理由でそれぞれが同じプロキシを取得しました。これを解決するために私が見つけた唯一の方法は、ストアを作成したときにプロキシ構成を含めることでした。ただし、完全なプロキシ構成を含める必要がありましたが、実際のコードは次のとおりです。

missingStore = Ext.create('ST.store.Attendance', {
    storeId: 'Missing_Attendance',
    proxy: {
        type: 'ajax', 
        url: 'query',
        extraParams: {
            resource: 'Attendance',
            parameters: '6'
        },
        writer: 'pipe'
    }
}),
partialStore = Ext.create('ST.store.Attendance', {
    storeId: 'Partial_Attendance',
    proxy: {
        type: 'ajax', 
        url: 'query',
        extraParams: {
            resource: 'Attendance',
            parameters: '5'
        },
        writer: 'pipe'
    }
}),
attendedStore = Ext.create('ST.store.Attendance', {
    storeId: 'Attended_Attendance',
    proxy: {
        type: 'ajax', 
        url: 'query',
        extraParams: {
            resource: 'Attendance',
            parameters: '4'
        },
        writer: 'pipe'
    }
}),
于 2012-07-20T15:32:03.957 に答える