Javascript 使用EXTjs提前加载组合框的项目

Javascript 使用EXTjs提前加载组合框的项目,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我有从商店加载的组合框项目,但当用户单击“展开”组合框项目列表时,它必须从商店代理“重新加载”数据。这会导致列表闪烁并变为未选中状态,迫使用户再次单击下拉列表 步骤1(页面加载时): 单击单元格进行编辑: 单击组合框中的向下箭头。同样,这个ajax调用强制combobox自动关闭,迫使用户重新单击向下箭头 看法 商店: Ext.define('AM.store.Priorities', { extend: 'Ext.data.Store', model: 'AM.model

我有从商店加载的组合框项目,但当用户单击“展开”组合框项目列表时,它必须从商店代理“重新加载”数据。这会导致列表闪烁并变为未选中状态,迫使用户再次单击下拉列表

步骤1(页面加载时):

单击单元格进行编辑:

单击组合框中的向下箭头。同样,这个ajax调用强制combobox自动关闭,迫使用户重新单击向下箭头

看法

商店:

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"
        }
    ]
}