如何将JSON数据传递到extJS商店模型。

时间:2018-06-13 06:45:03

标签: javascript extjs

我有一个网格,我以这种方式绑定我的商店。

bind: {
    store:'{myStoreViewModel}'
},

现在在myStoreViewModel中,我这样定义了。

myStoreViewModel:{
    autoLoad: false,
    proxy: {
        type: 'ajax',
        url: 'myUrl',
        timeout: 240000,
        paramsAsJson: true,
        actionMethods: {
            read: 'POST'
        },
        reader: {
            type: 'json'
        }
    },
    listeners: {
        load: 'myLoad',
    }
},

这里我的serviceStatus失败了。然后我用普通的Ajax进一步研究这个问题。

这是我正常的Ajax

myNormalAjax : function(myJSON){
    Ext.Ajax.request({
        url: 'retrievemsgsummary.do',
        method: 'POST',
        dataType: 'json',
        timeout: ProcessConstants.VALBIZDT_TIMEOUT,
        jsonData: myJSON,
        success: function(response) {
            var responseText = Ext.JSON.decode(response.responseText);
            if (responseText.serviceStatus == 'SUCCESS') {
                this.messageSummaryDetails(this,responseText);
            } 
        },
        failure: function(response) {

        },
        scope: this

    });
            },

我在这里传递jsonData并且serviceStatus即将成功。

然后在我的viewModel中我也尝试传递jsonData但没有运气。这是我如何在那里传递jsonData。

dataObj : function(myJSONDATA){
    var myStoreStore = this.getViewModel().getStore('myStoreViewModel');
        myStoreStore.proxy.jsonData = myJSONDATA;
}

有人可以建议如何为我的网格绑定我的商店。

**

1 个答案:

答案 0 :(得分:1)

您可以使用商店/代理定义中的代理extraParams配置,或者使用setExtraparamsetExtraparams方法在生命周期的后期将其他参数(额外参数)传递给商店的代理。所以,在你的情况下,它可能是这样的:

dataObj : function(myJSONDATA){
    var myStoreStore = this.getViewModel().getStore('myStoreViewModel');
    myStoreStore.getProxy().setExtraParams(myJSONDATA);
}
相关问题