我有Combo
ExtJS,应该由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代码是不可理解的方式)。
在执行此代码后的组合中,我看到了三个空项。需要提示。
答案 0 :(得分: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);