无法使用内存代理将数据加载到extjs的combobox存储中

时间:2018-11-26 11:02:22

标签: java spring-mvc extjs

我正在使用Extjs6。我想从服务器获取数据并将数据加载到组合框。但是,当我获得数据根属性并且成功值不包含数据时,它仍然可以成功调用,但无法将数据加载到组合框。

任何帮助将不胜感激!

下面是代码段: 我有如下所示的组合框:

xtype           : 'thrcombobox',
 fieldLabel     : 'Select District',
 store          :  Ext.create('thr.store.admin.master.DistrictStore'),
 itemId         : 'cmbDistrict',
 name           : 'cmbDistrict',
 displayField   : 'districtMarathi',
 valueField     : 'districtID',
 queryMode      : 'local'

以下是商店:

Ext.define('thr.store.admin.master.DistrictStore',{
     extend         : 'Ext.data.Store',
     alias          : 'store.districtStore',
     storeId        : 'districtStore',
     requires       : [
         'thr.model.admin.master.District'
     ],
     model       : 'thr.model.admin.master.District',
     autoSync    : false,
     autoLoad    : false,
     proxy: {
           type : 'memory',
           reader   : {
              type  : 'json',
              rootProperty: 'data'
           }
     }   
});

下面是Model:

Ext.define('thr.model.admin.master.District',{
    extend      : 'Ext.data.Model',
    fields      : [
        {
            name : 'districtID'
        },
        {
            name : 'districtMarathi'
        },
        {
            name : 'districtEnglish'
        }
    ]
});

下面是ajax调用,我在其中获取要存储的数据:

var districtStore = districtCombobox.getStore();
districtStore.loadData([]);

在districtStore上方定义组合框的存储。

  Ext.Ajax.request({
                url: <path goes here..>,
                method: 'POST',
                success: function(response, action){
                    var decodedResponse = Ext.decode(response.responseText);
                    if(!Ext.isEmpty(decodedResponse) && decodedResponse.success){
                            districtStore.loadData(decodedResponse.data);
                    }
                },
                failure: function(form, action){
                     return false;
                }

    });

0 个答案:

没有答案