我正在尝试将选择字段绑定到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的商店?该字段是否自动绑定到商店,还是我需要显式创建商店?
答案 0 :(得分:1)
确保您的视图需要商店。也许它还不存在(它需要它可以通过ID找到它):
requires: ['App.store.MyStore']
答案 1 :(得分: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'
}
});