我的ListItems一直在变成没有文字的空白。
最初,我的项目使用{field_name}简单地使用List对象的itemTpl定义进行格式化。这很好,但当然功能有限。
所以我使用dataMap查看了DataView(http://docs.sencha.com/touch/2-1/#!/guide/dataview)的ST2文档指南,并尝试复制它。但是,无论出于何种原因,我似乎无法获得实际呈现的内容。我得到了预期的结果数量,披露行动确实打开了正确/相应的记录。这只是项目都是空白的,没有文字。
商店通过代理加载JSON数据。数据有许多字段,包括一个称为“标题”的字段。现在,这就是我要在列表项中设置样式并显示的内容。根据“标题”内容,我可能会采用不同的方式。
像往常一样,非常感谢任何帮助。谢谢!
穆罕默德。
加利福尼亚州圣何塞
我的列表对象:
Ext.define('qxtapp.view.ResultsList', {
extend: 'Ext.dataview.List',
alias: 'widget.resultsList',
xtype: 'resultsList',
requires: [
'qxtapp.view.ResultsListItem',
'Ext.plugin.ListPaging'
],
config: {
defaultType: 'resultslistitem',
loadingText: 'Performing search...<br>This may take up to 1 minute.',
emptyText: 'No results found.',
useComponents: true,
store: 'SearchResults',
onItemDisclosure: true,
plugins: [
{
xclass: 'Ext.plugin.ListPaging',
autoPaging: true
}
]
}
});
我的ListItem对象:
Ext.define('qxtapp.view.ResultsListItem', {
extend: 'Ext.dataview.component.ListItem',
xtype : 'resultslistitem',
config: {
captionPanel: true,
dataMap: {
getCaptionPanel: {
setText: 'caption'
}
}
},
applyCaptionPanel: function(config) {
return Ext.factory(config, Ext.Panel, this.getCaptionPanel());
},
updateCaptionPanel: function(newCaptionPanel, oldCaptionPanel) {
if(oldCaptionPanel) {
this.remove(oldCaptionPanel);
}
if(newCaptionPanel) {
this.add(newCaptionPanel);
}
}
});
答案 0 :(得分:1)
没关系,我意识到自己的错误。
数据图中的愚蠢错误。由于我将配置转换为Panel而不是Button,我的setter应该是“setHtml”而不是“setText”。立即行动。
感谢。
dataMap: {
getCaptionPanel: {
setText: 'caption' // <---- should have been "setHtml:..."
}
}