Sencha Architect无法从DataView OnItemTap导航到列表视图

时间:2014-02-27 01:17:46

标签: extjs sencha-touch sencha-touch-2 sencha-architect

任何人都可以通过以下代码告诉我我的错误吗?当我点击dataview项时,我收到错误:

 Uncaught TypeError: Object [object Object] has no method 'getMainView' app.js:69888

我的代码如下:

Ext.define('DTZMobility.view.DashboardView', {
extend: 'Ext.dataview.DataView',
alias: 'widget.dashboardView',

requires: [
    'Ext.XTemplate'
],

config: {
    baseCls: 'rd-tiled-view',
    fullscreen: true,
    scrollable: 'vertical',
    itemCls: 'rd-tiled-view-item',
    store: 'moduleStore',
    itemTpl: [
        '<div>{name}</div>'
    ],
    listeners: [
        {
            fn: 'onDataviewItemTap',
            event: 'itemtap'
        }
    ]
},

onDataviewItemTap: function(dataview, index, target, record, e, eOpts) {
    var workorderlist = Ext.create('widget.workorderlist'), // Create work order list View
        mainView = this.getMainView();              // Main view

    console.log("Created mainview");

    // Navigate to Sign In Panel
    mainView.push({
        xtype: "workorderlist",
        title: "Work Orders"
    });
}

 });

1 个答案:

答案 0 :(得分:0)

我终于明白了。 itemtap事件的事件处理应如下所示:

 onDataviewItemTap: function(dataview, index, target, record, e, eOpts) {

    var workorderlist = Ext.create('widget.workorderlist');

    var c = Ext.getCmp('mainView');
    if(c === undefined) {
    c = Ext.create('DTZMobility.view.MainView');
    }

    Ext.Viewport.animateActiveItem(c, {type:'slide'});

    // Push the workorder list to the mainview
    c.push({
        xtype: "workorderlist",
        title: "Work Orders"
    });
}