diff --git a/ionic/components.js b/ionic/components.js index daa304ac7d..5dfa573413 100644 --- a/ionic/components.js +++ b/ionic/components.js @@ -17,6 +17,7 @@ export * from 'ionic/components/modal/modal' export * from 'ionic/components/nav/nav' export * from 'ionic/components/nav/nav-controller' export * from 'ionic/components/nav/nav-params' +export * from 'ionic/components/nav/nav-push' export * from 'ionic/components/nav-bar/nav-bar' export * from 'ionic/components/slides/slides' export * from 'ionic/components/radio/radio' diff --git a/ionic/components/nav/nav-push.js b/ionic/components/nav/nav-push.js new file mode 100644 index 0000000000..595994b041 --- /dev/null +++ b/ionic/components/nav/nav-push.js @@ -0,0 +1,44 @@ +import {Directive, onInit} from 'angular2/src/core/annotations_impl/annotations'; +import {Optional} from 'angular2/src/di/annotations_impl'; +import {Compiler} from 'angular2/angular2'; +import {ElementRef} from 'angular2/src/core/compiler/element_ref'; +import {DynamicComponentLoader} from 'angular2/src/core/compiler/dynamic_component_loader'; +import {Injector} from 'angular2/di'; + +import {ViewController} from '../view/view-controller'; +import {NavController} from './nav-controller'; + +@Directive({ + selector: '[nav-push]', + hostListeners: { + '^click': 'onClick($event)' + }, + properties: [ + 'navPush: nav-push', + 'pushData: push-data' + ] +}) +export class NavPush { + constructor(nav: NavController) { + this.nav = nav; + } + onClick(event) { + this.nav.push(this.navPush, this.pushData); + } +} + + +@Directive({ + selector: '[nav-pop]', + hostListeners: { + '^click': 'onClick($event)' + } +}) +export class NavPop { + constructor(nav: NavController) { + this.nav = nav; + } + onClick(event) { + this.nav.pop(); + } +} diff --git a/ionic/components/nav/test/basic/pages/first-page.js b/ionic/components/nav/test/basic/pages/first-page.js index 6869a83967..655af564e7 100644 --- a/ionic/components/nav/test/basic/pages/first-page.js +++ b/ionic/components/nav/test/basic/pages/first-page.js @@ -1,7 +1,7 @@ import {Component, Directive} from 'angular2/src/core/annotations_impl/annotations'; import {View} from 'angular2/src/core/annotations_impl/view'; -import {NavController, NavbarTemplate, Navbar, Content} from 'ionic/ionic'; +import {NavController, NavbarTemplate, Navbar, NavPush, Content} from 'ionic/ionic'; import {SecondPage} from './second-page'; @@ -21,10 +21,11 @@ import {SecondPage} from './second-page'; '' + '

First Page: {{ val }}

' + '

' + + '

' + '' + '' + '
', - directives: [NavbarTemplate, Navbar, Content] + directives: [NavbarTemplate, Navbar, NavPush, Content] }) export class FirstPage { constructor( @@ -32,6 +33,11 @@ export class FirstPage { ) { this.nav = nav; this.val = Math.round(Math.random() * 8999) + 1000; + + this.pushPage = SecondPage; + this.pushData = { + id: 420 + } } viewLoaded() { diff --git a/ionic/components/nav/test/basic/pages/second-page.js b/ionic/components/nav/test/basic/pages/second-page.js index 785c490bc9..52940c2141 100644 --- a/ionic/components/nav/test/basic/pages/second-page.js +++ b/ionic/components/nav/test/basic/pages/second-page.js @@ -1,7 +1,7 @@ import {Component, Directive} from 'angular2/src/core/annotations_impl/annotations'; import {View} from 'angular2/src/core/annotations_impl/view'; -import {NavController, NavParams, NavbarTemplate, Navbar, Content} from 'ionic/ionic'; +import {NavController, NavPop, NavParams, NavbarTemplate, Navbar, Content} from 'ionic/ionic'; import {ThirdPage} from './third-page'; @@ -13,13 +13,16 @@ import {ThirdPage} from './third-page';

+

+ +

`, - directives: [NavbarTemplate, Navbar, Content] + directives: [NavbarTemplate, NavPop, Navbar, Content] }) export class SecondPage { constructor(