Sencha Touch selectfield无法显示数据存储区中的值

时间:2011-11-25 04:45:35

标签: sencha-touch store

我正在尝试将商店加载到sencha touch 2.0中的Select字段,但是遇到了一个奇怪的问题: 对于以下代码:

        {
            xtype : 'list',
            store : 'Docbases',
            itemTpl : 'Hello {docbase}!'
        }, {
            xtype : 'selectfield',
            label : 'Docbase',
            id : 'docbase',
            store : 'Docbases',
            displayField : 'docbase',
            valueField : 'docbase',
            placeHolder : 'Select a Value'

        }

列表组件可以很好地显示,而selectfield则无法显示该值。单击该选择域时,出现控制台错误:

Uncaught TypeError: Cannot call method 'get' of null

我的商店被声明为:

Ext.define('FDMobileClient.store.Docbases', {
    extend : 'Ext.data.Store',
    requires : ['FDMobileClient.model.Docbase'],
    model : 'FDMobileClient.model.Docbase',
    autoLoad : true,
    proxy : {
        type : 'ajax',
        url : '/MobileInternalProject/mobile/getDocbaseList.action',
        reader : {
            type : 'json',
            root : 'docbases'
        }
    },

});

有没有人有任何想法我做错了什么:(

我很感激你的帮助。感谢

2 个答案:

答案 0 :(得分:2)

你的商店对我来说似乎很好。这就是我要做的就是排序:

  • 在您的视图配置中:

    config: {
       ...
       docStore : null
       ...
    },
    
  • 在你的视图init:

    initialize: function() {
       ...
       docStore = Ext.create('FDMobileClient.store.Docbases');
       ...
    },
    
  • 最后是您选择字段的代码

    {
        xtype : 'list',
        store : 'Docbases',
        itemTpl : 'Hello {docbase}!'
    }, {
        xtype : 'selectfield',
        label : 'Docbase',
        id : 'docbase',
        store : docStore, //NOTE: no quotes!
        displayField : 'docbase',
        valueField : 'docbase',
        placeHolder : 'Select a Value'
    
    }
    

它对我有用,对你也应该没问题。祝你好运,Alex

答案 1 :(得分:1)

您应该为商店提供ID并在引用商店时使用此标识符:

Ext.define('FDMobileClient.store.Docbases', {
extend : 'Ext.data.Store',
requires : ['FDMobileClient.model.Docbase'],
model : 'FDMobileClient.model.Docbase',
id : 'DocbaseStore'
...
}
{
...
store : 'DocbaseStore',
displayField : 'docbase',
...
}