【发布时间】:2016-09-29 21:37:53
【问题描述】:
我有一个在线商店,它位于一个简单的组合框内。这个商店有一些默认的内联数据。现在我正在寻找一个在商店创建后触发的事件,并且该事件需要向我提供商店中的数据。
我试过这样:
Ext.create('Ext.form.ComboBox', {
fieldLabel: 'Choose',
store: {
autoLoad: true,
fields: [
{name: 'name', type: 'string'}
],
data : [
{"name":"TestName_A"},
{"name":"TestName_B"},
{"name":"TestName_C"},
],
listeners: {
load: function(store) {
let records = store.getData()
records.forEach(record => {
console.log(record.getField('name'))
})
}
}
},
queryMode: 'local',
valueField: 'name',
displayField: 'name',
renderTo: Ext.getBody()
});
但它不起作用。 store.getData() 似乎没有包含我的记录。
【问题讨论】:
-
将您的 load() 函数中的代码更改为 store.getData().items 以接收您的记录。
-
它返回一个空数组,过了一会儿这个空数组突然包含了 3 个构造函数。什么? fiddle.sencha.com/?fiddle=v7#fiddle/1h74(当调试器断点被命中时,数组为空。恢复执行后,它包含一个构造函数数组。)
-
如果要迭代存储记录,请使用
store.each。同样getField返回一个字段配置,你可能想要get。
标签: javascript events extjs store