1

我的 ListItems 一直显示为没有文字的空白。

最初,我的项目只是使用 {field_name} 使用 List 对象的 itemTpl 定义格式化。这工作得很好,但当然功能有限。

因此,我使用 dataMap 查看了 DataView 的 ST2 文档指南(http://docs.sencha.com/touch/2-1/#!/guide/dataview)并尝试复制它。但是,无论出于何种原因,我似乎无法让内容实际呈现。我得到了预期数量的结果,并且披露行动确实打开了正确/相应的记录。只是这些项目都是空白的,没有文字。

商店通过代理加载 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);
        }
    }
});
4

1 回答 1

1

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

数据图中的愚蠢错误。由于我将我的配置转换为面板,而不是按钮,我的设置器应该是“setHtml”而不是“setText”。现在工作。

谢谢。

dataMap: {
        getCaptionPanel: {
            setText: 'caption'  //  <---- should have been "setHtml:..."
        }
    }
于 2013-03-07T00:57:56.427 回答