我正在尝试将商店加载到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'
}
},
});
有没有人有任何想法我做错了什么:(
我很感激你的帮助。感谢
长
答案 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',
...
}