javascript - 商店上的 extjs 组合框 getCount() 返回 0
问题描述
我正在尝试获取组合框中的项目数,以便我可以使用 getCount() 方法默认情况下使第一个值在组合框中可见,但我看到它总是返回 0,因此无法显示第一个项目在组合框中。
我的组合框的代码如下所示:
Ext.define('something....', {
controller: 'some Controller',
initComponent: function() {
var me,
me = this;
me.items = [{
xtype: 'form',
items: [{
xtype: 'combo',
itemId: 'nameId',
name:'nameId',
labelAlign: 'top',
fieldLabel: 'Name',
store: me._getNames(),
//disabled:some condition?true:false,//doesn't gray out combo
valueField:'dataId',
displayField: 'firstName',
editable: false,
listeners:{
afterrender: function(combo,component) {
var combo = me.down('#nameId');
var nameStore = combo.getStore();
var setFirstRecord = function(combo){
var nameStore = combo.getStore();
if(nameStore.getCount() === 1){
combo.setValue(nameStore.getAt(0));
}
}
if(nameStore.isLoaded() === false){
nameStore.on('load', function(nameStore){
setFirstRecord(combo);
},this,{
single:true
});
}else{
setFirstRecord(nameStore);
}
},
}
}]
}];
}
商店代码如下:
_getNames: function (){
var nameStore = Ext.create('Ext.data.Store', {
autoLoad: true,
proxy: {
type: 'ajax',
url: 'name.json',
reader: {
type: 'json',
rootProperty:'items',
transform: function (data) {
var data = {
items: [{
dataId: data[0].dataId,
firstName: data[0].name.firstName,
nameDetails: data[0].nameDetails
}]
}
return data;
}
},
},
fields: ['dataId', 'firstName','nameDetails']
});
return namesStore;
}
})
api返回的填充store的结果如下:
[
{
"dataId":1,
"name":{
"dataId":1,
"firstName":"Julie",
"code":"10",
"connectionList":[
"EMAIL"
]
},
"nameDetails":{
"EMAIL":{
"dataId":1,
"detail":"EMAIL"
}
}
}
]
任何关于缺少什么的建议都会很棒!
解决方案
我在 Sencha Fiddle 中为您编写了该示例:https ://fiddle.sencha.com/#view/editor&fiddle/3cdl
这解决了你的问题:
combo.getStore().on("load",
function (store, records, successful, operation, eOpts) {
if (store.getData().length > 0)
combo.setValue(store.getData().get(0).getData().id)
},
this
)
推荐阅读
- django - 使用 django 会话身份验证通过 angular4 应用程序实现中央身份验证系统
- sql-server - 删除约束时的执行超时
- macos - Qt Creator 卡在 Mac 操作系统上的“启动调试器”中
- numpy - 在决策树回归器中使用 numpy 数组作为特征
- java - 如何通过 XML 在 Log4j 中将根记录器配置为异步?
- javascript - !function 做什么或暗示什么?
- python - 限制命令
- c# - 使用 C# 7.0 功能时无法构建
- svn - 无法在两台机器之间同步 SVN 版本化文件夹的状态
- mysql - SQL - 获取连接表的多行但不是全部行的平均值