Sencha Touch 2:ListItems为空白

时间:2013-03-06 19:11:05

标签: list extjs sencha-touch-2 listitem

我的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);
        }
    }
});

1 个答案:

答案 0 :(得分:1)

没关系,我意识到自己的错误。

数据图中的愚蠢错误。由于我将配置转换为Panel而不是Button,我的setter应该是“setHtml”而不是“setText”。立即行动。

感谢。

dataMap: {
        getCaptionPanel: {
            setText: 'caption'  //  <---- should have been "setHtml:..."
        }
    }