Pushing a new view after an item was tapped in Sencha Touch 2

Total Post:412

Points:2888

 2490  View(s)
Ratings:
Rate this:
Hi,

I have a simple list populated from JSON. When tapping one of the items i want a new view to appear. The List is inside an Ext.navigation.View.

My controller

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);
}
});
And here is the (now empty) view i want to push

Ext.define('Trainz.view.StationDetailView', {
extend: 'Ext.Panel',
config: {
}
});

Guessing i have to put something in the onListItemTap function but for the life of me I cant figure out what. Tried over four different code snippets from Google and just got errors back. Whats the proper way?

I'm using Sencha Architect if that makes any difference.

Here is the complete initial view for reference:

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
                }
            ]
        }
    ]
}
});

Thanks in advance. 
  1. Re: Pushing a new view after an item was tapped in Sencha Touch 2

    Hi Pravesh!

    You need to retrieve your navigationview and then do navigationView.push(yourNewView); 

    or

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

    I hope it resolve your problem.

Answer

Please check, If you want to make this post sponsored

You are not a Sponsored Member. Click Here to Subscribe the Membership.