Javascript 使用EXTjs提前加载组合框的项目
我有从商店加载的组合框项目,但当用户单击“展开”组合框项目列表时,它必须从商店代理“重新加载”数据。这会导致列表闪烁并变为未选中状态,迫使用户再次单击下拉列表 步骤1(页面加载时): 单击单元格进行编辑: 单击组合框中的向下箭头。同样,这个ajax调用强制combobox自动关闭,迫使用户重新单击向下箭头 看法 商店:Javascript 使用EXTjs提前加载组合框的项目,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我有从商店加载的组合框项目,但当用户单击“展开”组合框项目列表时,它必须从商店代理“重新加载”数据。这会导致列表闪烁并变为未选中状态,迫使用户再次单击下拉列表 步骤1(页面加载时): 单击单元格进行编辑: 单击组合框中的向下箭头。同样,这个ajax调用强制combobox自动关闭,迫使用户重新单击向下箭头 看法 商店: Ext.define('AM.store.Priorities', { extend: 'Ext.data.Store', model: 'AM.model
Ext.define('AM.store.Priorities', {
extend: 'Ext.data.Store',
model: 'AM.model.Priority',
autoLoad: true,
proxy: {
type: 'ajax',
api: {
read: 'app/data/priorities.json',
update: 'app/data/updateUsers.json'
},
reader: {
type: 'json',
root: 'priorities',
successProperty: 'success'
}
}
});
priorities.json
{
success: true,
priorities: [
{
id : 1,
name : "High",
short_name : "H"
},
{
id : 2,
name : "Medium",
short_name : "M"
},
{
id : 3,
name : "Low",
short_name : "L"
}
]
}
我相信您需要做的是在combobox字段配置中设置queryMode:“local”
字段:{
xtype:“组合框”,
queryMode:'本地',
是的,
存储:“优先级”,
displayField:'名称',
valueField:'id',
listClass:'x-combo-list-small'
}
发件人:
在queryMode:“remote”中,组合框根据用户交互动态加载其存储这通常用于“自动完成”类型输入,并且在用户完成输入后,将加载存储
您的存储的自动加载设置为true,这意味着您不应该对queryModel是本地的有任何问题,因为您的数据在创建时应该已经在存储中了。我会说,我还没有充分挖掘来解释这种行为,也许其他人可以详细说明combobox的复杂性。确保您使用的是queryMode“local”,autoLoad true,并且在将其附加到combo之前实例化您的商店。这将迫使它在向最终用户显示之前获取值!谢谢你的信息!将querymode设置为local成功了!如果您将其作为答案提交,我将尽快接受:)
{
success: true,
priorities: [
{
id : 1,
name : "High",
short_name : "H"
},
{
id : 2,
name : "Medium",
short_name : "M"
},
{
id : 3,
name : "Low",
short_name : "L"
}
]
}