在Sencha Touch中看不到DataView

时间:2013-05-17 18:07:02

标签: javascript extjs sencha-touch

我正在Sencha Touch中创建一个DataView,它存在于我的一个标签中。

问题是,我看不到我的DataView。如果我右键单击 - >检查元素(在Chrome中),我可以在页面上看到我的DataView的HTML(在开发人员工具中),但在页面本身上,我看到的只是一个白色背景。

以下是我的DataView的源代码:

Ext.define('MyApp.view.DashboardTab', {
extend: 'Ext.Panel',
xtype: 'dashboard',

config: {
    title: 'Dashboard',
    itemId: 'dashboardTab',
    layout: 'vbox',

    items: [{
        xtype: 'dataview',
        store: { xtype: 'mystore' },
        itemTpl: [
            '<div class="myDiv">',
                '<table class="myTable">',
                    '<tr>',
                        '<td>Data 0:</td><td>{data_0}</td>',
                        '<td>Data 1:</td><td>{data_1}</td>',
                    '</tr>',
                    '<tr>',
                        '<td>Data 2:</td><td>{data_2}</td>',
                        '<td>Data 3:</td><td>{data_3}</td>',
                    '</tr>',
                    '<tr>',
                        '<td>Data 4:</td><td>{data_4}</td>',
                        '<td>Data 5:</td><td>{data_5}</td>',
                    '</tr>',
                '</table>',
                '<div class="myOtherDiv">',
                    '<img src="{image}" />',
                '</div>',
            '</div>'
        ]
    }]
}
});

1 个答案:

答案 0 :(得分:0)

您的数据视图看起来没有从商店获取数据,这就是数据视图未显示的原因。

另一种方法是在控制器中使用setData来设置数据视图的数据。

例如,

var responseObj = serverController.getWSResponse;
   var myDataView = Ext.getCmp('myDataView ');
        var data = myDataView .getData();
        if (data != null) {
            myDataView .onStoreClear();
        }

        myDataView.setData(Ext.JSON.decode('[' + JSON.stringify(responseObj) + ']'));

这将使您可以更灵活地调试数据视图中的内容。

希望这有帮助。