首页 > 解决方案 > 如何将 JSON 数据传递到 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;
}

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

**

标签: javascriptextjs

解决方案


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

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

推荐阅读