2

我正在尝试将选择字段绑定到 sencha-touch 中的商店。但是,我收到以下错误:

Uncaught TypeError: Cannot call method 'on' of undefined 

该字段如下所示:

{
            xtype: 'selectfield',
            label: 'Gender',
            store: 'GenderStore',
            displayField: 'ItemName',
            valueField: 'Id'
        },

和商店看起来像这样:

Ext.define('MobileApp.store.Gender', {
    extend: 'Ext.data.Store',

    requires: [
        'MobileApp.model.Lookup',
        'Ext.data.proxy.Rest'
    ],

    config: {
        autoLoad: true,
        model: 'MobileApp.model.Lookup',
        storeId: 'GenderStore',
        proxy: {
            type: 'rest',            
            url : '/api/lookup/genders',
            reader: {
                type: 'json'
            }
        }
    }    
});

任何想法为什么这不起作用?我想也许指定 storeId 会自动创建类似于使用 xtype 的商店?该字段是否不会自动绑定到商店,还是我需要显式创建商店?

4

2 回答 2

1

确保您的视图需要商店。也许它还不存在(它需要这样才能通过 ID 找到它):

requires: ['App.store.MyStore']
于 2012-12-16T19:36:26.367 回答
0

     {
        xtype: 'selectfield',
        label: 'Gender',
        store: GenderStore,
        displayField: 'ItemName',
        valueField: 'Id'
    },

商店

var GenderStore = Ext.create('Ext.data.Store', {
requires: [
    'MobileApp.model.Lookup',
    'Ext.data.proxy.Rest'
],
autoLoad: true,
model: 'MobileApp.model.Lookup',
proxy: {
    type: 'ajax',            
    url : '/api/lookup/genders',
    reader: {
       type: 'json',
       rootProperty: 'd'
    },
    root: 'd'

}   
});
于 2013-08-05T22:50:25.480 回答