在Sencha Touch 2中点击项目后推送新视图

时间:2013-05-31 17:41:15

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

我有一个从json填充的简单列表。当点击其中一个项目时,我想要一个新视图出现。 List位于Ext.navigation.View。

我的控制器

Ext.define('Trainz.controller.StationListController', {
extend: 'Ext.app.Controller',

config: {
    models: [
        'Station'
    ],
    stores: [
        'Stations'
    ],
    views: [
        'Main'
    ],

    control: {
        "list": {
            itemtap: 'onListItemTap'
        }
    }
},

onListItemTap: function(dataview, index, target, record, e, eOpts) {
    console.log(record);
}

});

这是我想要推送的(现在是空的)视图

Ext.define('Trainz.view.StationDetailView', {
extend: 'Ext.Panel',

config: {
}

});

猜测我必须在onListItemTap函数中添加一些内容,但对于我的生活,我无法弄清楚是什么。尝试了谷歌的四个不同的代码片段,只是错误回来了。什么是正确的方式?

我正在使用 Sencha Architect ,如果这有任何区别。

以下是供参考的完整初始视图:

Ext.define('Trainz.view.Main', {
extend: 'Ext.tab.Panel',

config: {
    tabBar: {
        docked: 'bottom'
    },
    items: [
        {
            xtype: 'navigationview',
            title: 'Stations',
            iconCls: 'maps',
            items: [
                {
                    xtype: 'list',
                    title: 'Stations',
                    itemTpl: [
                        '<div>{Namn}</div><div style="float:right; margin-right: 1.5em;"></div>'
                    ],
                    store: 'Stations',
                    grouped: true,
                    indexBar: true
                }
            ]
        }
    ]
}

});

1 个答案:

答案 0 :(得分:3)

您需要检索导航视图,然后执行

navigationView.push(yourNewView); 

dataview.up('navigationview').push(yourNewView)

http://docs.sencha.com/touch/2.2.0/#!/api/Ext.navigation.View-method-push

希望这有帮助