import {ViewChild} from 'angular2/core'; import {RouteConfig, Location} from 'angular2/router'; import {App, Page, NavController, NavParams, Modal, ViewController, Tabs} from '../../../../../ionic/ionic'; @Page({ template: ` Sign In Username: Password: ` }) class SignIn { constructor(private nav: NavController) {} push() { this.nav.push(TabsPage, { userId: 8675309 }); } } @Page({ template: ` Chat Modal

` }) class ChatPage { constructor(private viewCtrl: ViewController) {} } @Page({ templateUrl: './tabs.html' }) class TabsPage { @ViewChild(Tabs) tabs: Tabs; constructor(private nav: NavController, private params: NavParams) { this.tab1Root = Tab1Page1; this.tab1Params = params; this.tab2Root = Tab2Page1; this.tab3Root = Tab3Page1; } ngAfterViewInit() { this.tabs.change.subscribe(tab => { console.log('tabs.change.subscribe', tab.index); }); } onTabChange() { // wired up through the template // console.log('onTabChange'); } chat() { console.log('Chat clicked!'); let modal = Modal.create(ChatPage); this.nav.present(modal); } } // // tab 1 // @Page({ template: '' + '' + 'Tabs 1 Page 1' + '' + '' + '

' + '

' + '

' + '

UserId: {{userId}}

' + '' + '' + '
' }) class Tab1Page1 { userId: string; constructor(private nav: NavController, private tabs: Tabs, private params: NavParams) { this.userId = params.get('userId'); } push() { this.nav.push(Tab1Page2) } favoritesTab() { this.tabs.select(1); } logout() { this.nav.rootNav.setRoot(SignIn, null, { animate: true, direction: 'back' }); } } @Page({ template: '' + '' + 'Tabs 1 Page 2' + '' + '' + '

' + '

' + '' + '' + '
' }) class Tab1Page2 { constructor(private nav: NavController) {} push() { this.nav.push(Tab1Page3) } } @Page({ template: '' + '' + 'Tabs 1 Page 3' + '' + '' + '

' + '' + '' + '
' }) class Tab1Page3 { constructor(private nav: NavController) {} } // // tab 2 // @Page({ template: '' + '' + 'Tabs 2 Page 1' + '' + '' + '

' + '' + '' + '
' }) class Tab2Page1 { constructor(private nav: NavController) {} push() { this.nav.push(Tab2Page2) } } @Page({ template: '' + '' + 'Tabs 2 Page 2' + '' + '' + '

' + '

' + '' + '' + '
' }) class Tab2Page2 { constructor(private nav: NavController) {} push() { this.nav.push(Tab2Page3) } } @Page({ template: '' + '' + 'Tabs 2 Page 3' + '' + '' + '

' + '' + '' + '
' }) class Tab2Page3 { constructor(private nav: NavController) {} } // // tab 3 // @Page({ template: '' + '' + 'Tabs 3' + '' + '

Tabs 3

' }) class Tab3Page1 {} @App() @RouteConfig([ { path: '/', component: SignIn, as: 'Signin' }, { path: '/tabs', component: TabsPage, as: 'Tabs' }, ]) class E2EApp {}