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 {}