Sencha Touch 选择字段无法显示数据存储中的值
Posted
技术标签:
【中文标题】Sencha Touch 选择字段无法显示数据存储中的值【英文标题】:Sencha Touch selectfield cannot display value from datastore 【发布时间】:2011-11-25 04:45:34 【问题描述】:我正在尝试将商店加载到 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'
list组件可以很好的显示,而selectfield不能显示值。单击该选择字段时,出现控制台错误:
Uncaught TypeError: Cannot call method 'get' of null
My Store 声明为:
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'
,
);
有没有人知道我做错了什么:(
感谢您的所有帮助。谢谢
长
【问题讨论】:
【参考方案1】:我觉得你的商店不错。这就是我所做的排序:
在您的视图配置中:
config:
...
docStore : null
...
,
在你看来初始化:
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'
它对我有用,对你也应该没问题。祝你好运,亚历克斯
【讨论】:
【参考方案2】:您应该为您的商店提供一个 ID,并在引用该商店时使用此标识符:
Ext.define('FDMobileClient.store.Docbases',
extend : 'Ext.data.Store',
requires : ['FDMobileClient.model.Docbase'],
model : 'FDMobileClient.model.Docbase',
id : 'DocbaseStore'
...
...
store : 'DocbaseStore',
displayField : 'docbase',
...
【讨论】:
以上是关于Sencha Touch 选择字段无法显示数据存储中的值的主要内容,如果未能解决你的问题,请参考以下文章
Sencha Touch 2- 解析存储包含数组的 JSON 文件