import {bootstrap, QueryList} from 'angular2/angular2' import {Component, Directive, onInit} from 'angular2/src/core/annotations_impl/annotations'; import {View} from 'angular2/src/core/annotations_impl/view'; import {Nav, NavPush, NavPop, NavParams, Routable, Router, NavController, NavbarTemplate, Navbar, NavPush, Content} from 'ionic/ionic'; @Component({ selector: 'ion-view', lifecycle: [onInit] }) @View({ template: '' + '' + 'First Page: {{ val }}' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '

First Page: {{ val }}

' + '

' + '

' + '' + '' + '' + '
', directives: [NavbarTemplate, Navbar, NavPush, Content] }) export default class FirstPage { constructor( nav: NavController ) { // TODO: Shouldn't have to do this Router.setNavController(nav); this.nav = nav; this.val = Math.round(Math.random() * 8999) + 1000; this.pushPage = SecondPage; this.pushData = { id: 420 } } onInit() { } viewLoaded() { this.router = FirstPage.router.invoke(this); console.log('viewLoaded first page'); } viewWillEnter() { console.log('viewWillEnter first page'); } viewDidEnter() { console.log('viewDidEnter first page'); } viewWillLeave() { console.log('viewWillLeave first page'); } viewDidLeave() { console.log('viewDidLeave first page'); } viewWillCache() { console.log('viewWillCache first page'); } viewDidCache() { console.log('viewDidCache first page'); } viewWillUnload() { console.log('viewWillUnload first page'); } viewDidUnload() { console.log('viewDidUnload first page'); } push() { this.nav.push(SecondPage, { id: 8675309, myData: [1,2,3,4] }, { animation: 'ios' }); } } new Routable(FirstPage, { url: '/first-page' }) @Component({selector: 'ion-view'}) @View({ template: ` Second Page Header

Random: {{ val }}

`, directives: [NavbarTemplate, NavPop, Navbar, Content] }) export class SecondPage { constructor( nav: NavController, params: NavParams ) { // TODO: Shouldn't have to do this Router.setNavController(nav); this.nav = nav; this.params = params; this.val = Math.round(Math.random() * 8999) + 1000; console.log('Second page params:', params); } pop() { this.nav.pop(); } push() { this.nav.push(ThirdPage); } viewLoaded() { console.log('viewLoaded second page'); this.router = SecondPage.router.invoke(this); } viewWillEnter() { console.log('viewWillEnter second page'); } viewDidEnter() { console.log('viewDidEnter second page'); } viewWillLeave() { console.log('viewWillLeave second page'); } viewDidLeave() { console.log('viewDidLeave second page'); } viewWillCache() { console.log('viewWillCache second page'); } viewDidCache() { console.log('viewDidCache second page'); } viewWillUnload() { console.log('viewWillUnload second page'); } viewDidUnload() { console.log('viewDidUnload second page'); } } new Routable(SecondPage, { url: '/second-page' }) @Component({selector: 'ion-view'}) @View({ template: ` Third Page Header

`, directives: [NavbarTemplate, Navbar, Content] }) export class ThirdPage { constructor( nav: NavController ) { this.nav = nav } pop() { this.nav.pop() } viewLoaded() { console.log('viewLoaded third page'); } viewWillEnter() { console.log('viewWillEnter third page'); } viewDidEnter() { console.log('viewDidEnter third page'); } viewWillLeave() { console.log('viewWillLeave third page'); } viewDidLeave() { console.log('viewDidLeave third page'); } viewWillCache() { console.log('viewWillCache third page'); } viewDidCache() { console.log('viewDidCache third page'); } viewWillUnload() { console.log('viewWillUnload third page'); } viewDidUnload() { console.log('viewDidUnload third page'); } }