0

我有ComboExtJS,应该由 Spring MVC 中的数据填充 - 像这样:

    var LongRecord = Ext.data.Record.create([
        {name: 'id', mapping: 'id'}
    ]);

     var comboStore = new MyDataStore.data.Store({
        proxy: new MyDataStore.data.DwrProxy({
            invoker: function(params, arg, cb) {
                // data from server
                AssetScreener.getEntityOwnerIds(cb);
                console.log("invoker has been called");     
            }
        }),

        reader: new Ext.data.ArrayReader({}, LongRecord),
        listeners: {
               'load': function(s, recs) { 
                alert("!");

            }
         }
    });

组合码:

new Ext.form.ComboBox({
  store:  comboStore,
  typeAhead: true,
  triggerAction: 'all',
  editable: false,
  width: 100,
  displayField: 'id',
  valueField: 'id'
});

问题是我从服务器获取的数据看起来像这样

'5','0',["1","8","133"]

我需要对数组进行切片["1","8","133"]并以组合形式显示(更改后端 java 代码是不可取的方式)。

在执行此代码后的组合中,我看到三个空项目。需要提示,请。

4

1 回答 1

1

在加载事件中,您将在切片后["1","8","133"]从参数中获取。recs用于store.loadData()将当前存储记录替换为正确的记录。

您可以从数组中创建一个模型来为商店提供数据,如下所示:

var i, item, feed = [];
for(i=0; i<array.length; i++)
{
   item = array[i];
   feed.push(Ext.create('com.your.Model', {
       id : item
   }));
}
store.loadData(feed);
于 2012-11-17T06:04:23.217 回答