diff --git a/ionic/components/nav/nav-base.js b/ionic/components/nav/nav-base.js index 475789ca46..36aa9fe1c5 100644 --- a/ionic/components/nav/nav-base.js +++ b/ionic/components/nav/nav-base.js @@ -22,7 +22,7 @@ export class NavBase { set initial(Class) { if (!this._init) { - this._init = true + this._init = true; this.push(Class); } } @@ -62,6 +62,10 @@ export class NavBase { } pop(opts = {}) { + if (this.items.length < 2) { + return Promise.reject(); + } + let resolve; let promise = new Promise(res => { resolve = res; }); diff --git a/ionic/components/nav/nav-item.js b/ionic/components/nav/nav-item.js index adb2e9c384..7789bac680 100644 --- a/ionic/components/nav/nav-item.js +++ b/ionic/components/nav/nav-item.js @@ -28,20 +28,19 @@ export class NavItem { let promise = new Promise((res) => { resolve = res; }); let injector = this.nav.injector.resolveAndCreateChild([ - bind(NavController).toValue(this.nav.navCtrl) + bind(NavController).toValue(this.nav.navCtrl), + bind(NavParams).toValue(new NavParams(this.params)) ]); - this.nav.loader.loadNextToExistingLocation(this.Class, this.nav.itemContent.elementRef, injector) - .then((componentRef) => { + this.nav.loader.loadNextToExistingLocation(this.Class, this.nav.itemContent.elementRef, injector).then((componentRef) => { + // content this.component = componentRef; - this.domElement = componentRef.location.domElement; this.domElement.classList.add('nav-item'); this.domElement.setAttribute('data-nav-item-id', this.id); this.created = true; - resolve(); }); @@ -61,3 +60,9 @@ export class NavItem { } } + +export class NavParams { + constructor(params) { + util.extend(this, params); + } +} diff --git a/ionic/components/nav/nav.js b/ionic/components/nav/nav.js index ff5b9d97ba..31ab33b9b1 100644 --- a/ionic/components/nav/nav.js +++ b/ionic/components/nav/nav.js @@ -18,7 +18,7 @@ import {ToolbarContainer} from 'ionic/components/toolbar/toolbar'; }) @View({ template: ` -