使用远程ajax存储自动完成组合框extjs

时间:2013-04-30 13:32:08

标签: ajax extjs autocomplete combobox

我想在我的应用中添加一个带有远程商店的组合框。我有一个商店调用一个PHP脚本,以json格式返回数据,我将它与我的组合框链接。 商店是自动加载的,但我的组合框仍然是空的。 这是我的商店

// Define autocomplete model
Ext.define('modelloAC', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'telaio' }
    ]
});
// store auto complete
var autoCompleteStore = Ext.create('Ext.data.Store', {
    model: modelloAC,
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: 'script/request.php?operazione=gettelai',
        reader: {
            type: 'json',
            root: 'telai',
            totalProperty: 'results'
        }
    }
});

我的PHP返回一个JSON数组:

{"results":207,"telai":[{"telaio":"ZAR93200001271042"},{"telaio":"ZLA84000001738127"},{"telaio":"VF3WC9HXC33751301"},{"telaio":"W0L0AHL3555247737"}]}

我的组合框:

    xtype: 'combo',
    name: 'telaio',
   //hideTrigger: true,
   store: autoCompleteStore,
   typeAhead: true,
   queryMode: 'remote',
   fieldLabel: 'Telaio'

我的商店加载完美,但我的组合框是空的,问题出在哪里?

1 个答案:

答案 0 :(得分:1)

需要在combo config中添加displayField和valueField:

...
displayField: 'telaio',
valueField: 'telaio',
...

现在,商店中的模型尚未定义。把它写成一个字符串:

...
model: 'modelloAC',
...