diff --git a/src/components/nav/test/simple-nested-navs/app/app.component.ts b/src/components/nav/test/simple-nested-navs/app/app.component.ts new file mode 100644 index 0000000000..c824419ea2 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/app/app.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + template: `` +}) +export class AppComponent { + root = 'SecondNav'; +} diff --git a/src/components/nav/test/simple-nested-navs/app/app.module.ts b/src/components/nav/test/simple-nested-navs/app/app.module.ts new file mode 100644 index 0000000000..55310fa215 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/app/app.module.ts @@ -0,0 +1,17 @@ +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { IonicApp, IonicModule } from '../../../../..'; + +import { AppComponent } from './app.component'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + IonicModule.forRoot(AppComponent, { swipeBackEnabled: true, preloadModules: true }), + ], + bootstrap: [IonicApp] +}) +export class AppModule {} diff --git a/src/components/nav/test/simple-nested-navs/app/main.ts b/src/components/nav/test/simple-nested-navs/app/main.ts new file mode 100644 index 0000000000..6af7a5b2ae --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/app/main.ts @@ -0,0 +1,5 @@ +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app.module'; + +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/src/components/nav/test/simple-nested-navs/pages/first-page/first-page.module.ts b/src/components/nav/test/simple-nested-navs/pages/first-page/first-page.module.ts new file mode 100644 index 0000000000..c088e9f2d4 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/first-page/first-page.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { FirstPage } from './first-page'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(FirstPage) + ], + declarations: [ + FirstPage + ] +}) +export class FirstPageModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/first-page/first-page.ts b/src/components/nav/test/simple-nested-navs/pages/first-page/first-page.ts new file mode 100644 index 0000000000..d7f70c434f --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/first-page/first-page.ts @@ -0,0 +1,27 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController } from '../../../../../..'; + +@IonicPage() +@Component({ + selector: 'page-home', + template: ` + + + Tab 1 + + + + + + ` +}) +export class FirstPage { + + constructor(public navCtrl: NavController) { + + } + + goToNextPage() { + this.navCtrl.push('ThirdNav'); + } +} diff --git a/src/components/nav/test/simple-nested-navs/pages/home/home.module.ts b/src/components/nav/test/simple-nested-navs/pages/home/home.module.ts new file mode 100644 index 0000000000..f50ffb2700 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/home/home.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { HomePage } from './home'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(HomePage) + ], + declarations: [ + HomePage + ] +}) +export class HomePageModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/home/home.scss b/src/components/nav/test/simple-nested-navs/pages/home/home.scss new file mode 100644 index 0000000000..d4cc8fc1e8 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/home/home.scss @@ -0,0 +1,3 @@ +page-home { + +} diff --git a/src/components/nav/test/simple-nested-navs/pages/home/home.ts b/src/components/nav/test/simple-nested-navs/pages/home/home.ts new file mode 100644 index 0000000000..8058dbd8be --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/home/home.ts @@ -0,0 +1,36 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController } from '../../../../../..'; + +@IonicPage() +@Component({ + selector: 'page-home', + template: ` + + + + Ionic Blank + + + + + + The world is your oyster. +

+ If you get lost, the docs will be your guide. +

+ +
+ + ` +}) +export class HomePage { + + constructor(public navCtrl: NavController) { + + } + + clickMe() { + this.navCtrl.push('TabsPage', { paramOne: 'ParamOneData', paramTwo: 'ParamTwoData'}); + } + +} diff --git a/src/components/nav/test/simple-nested-navs/pages/second-nav/second-nav.module.ts b/src/components/nav/test/simple-nested-navs/pages/second-nav/second-nav.module.ts new file mode 100644 index 0000000000..b4a43298e8 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/second-nav/second-nav.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { SecondNav } from './second-nav'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(SecondNav) + ], + declarations: [ + SecondNav + ] +}) +export class SecondNavModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/second-nav/second-nav.ts b/src/components/nav/test/simple-nested-navs/pages/second-nav/second-nav.ts new file mode 100644 index 0000000000..88c04229d0 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/second-nav/second-nav.ts @@ -0,0 +1,19 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController } from '../../../../../..'; + +@IonicPage() +@Component({ + selector: 'page-home', + template: ` + + + ` +}) +export class SecondNav { + + rootPage:any = 'HomePage'; + constructor(public navCtrl: NavController) { + + } + +} diff --git a/src/components/nav/test/simple-nested-navs/pages/second-page/second-page.module.ts b/src/components/nav/test/simple-nested-navs/pages/second-page/second-page.module.ts new file mode 100644 index 0000000000..08053b890a --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/second-page/second-page.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { SecondPage } from './second-page'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(SecondPage) + ], + declarations: [ + SecondPage + ] +}) +export class SecondPageModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/second-page/second-page.ts b/src/components/nav/test/simple-nested-navs/pages/second-page/second-page.ts new file mode 100644 index 0000000000..28b84cc804 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/second-page/second-page.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController } from '../../../../../..'; + +@IonicPage() +@Component({ + selector: 'page-home', + template: ` + + + Tab 2 + + + + Second Page + + ` +}) +export class SecondPage { + + constructor(public navCtrl: NavController) { + + } + +} diff --git a/src/components/nav/test/simple-nested-navs/pages/tabs/tabs.module.ts b/src/components/nav/test/simple-nested-navs/pages/tabs/tabs.module.ts new file mode 100644 index 0000000000..e6eb1ae9f7 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/tabs/tabs.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { TabsPage } from './tabs'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(TabsPage) + ], + declarations: [ + TabsPage + ] +}) +export class TabsPageModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/tabs/tabs.ts b/src/components/nav/test/simple-nested-navs/pages/tabs/tabs.ts new file mode 100644 index 0000000000..3389c9bb01 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/tabs/tabs.ts @@ -0,0 +1,28 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController, NavParams } from '../../../../../..'; + +@IonicPage({ + segment: 'toot/:paramOne/beep/:paramTwo' +}) +@Component({ + template: ` + + + + + ` +}) +export class TabsPage { + tab1 = 'FirstPage'; + tab2 = 'SecondPage'; + + constructor(public nav: NavController, public params: NavParams) { + + } + + ionViewDidEnter() { + console.log('paramOne: ', this.params.data.paramOne); + console.log('paramTwo: ', this.params.data.paramTwo); + } + +} \ No newline at end of file diff --git a/src/components/nav/test/simple-nested-navs/pages/third-nav/third-nav.module.ts b/src/components/nav/test/simple-nested-navs/pages/third-nav/third-nav.module.ts new file mode 100644 index 0000000000..cac1c1ac21 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/third-nav/third-nav.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { ThirdNav } from './third-nav'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(ThirdNav) + ], + declarations: [ + ThirdNav + ] +}) +export class ThirdNavModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/third-nav/third-nav.ts b/src/components/nav/test/simple-nested-navs/pages/third-nav/third-nav.ts new file mode 100644 index 0000000000..b1e78b65b1 --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/third-nav/third-nav.ts @@ -0,0 +1,19 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController } from '../../../../../..'; + +@IonicPage() +@Component({ + selector: 'page-home', + template: ` + + + ` +}) +export class ThirdNav { + + rootPage:any = 'ThirdPage'; + constructor(public navCtrl: NavController) { + + } + +} diff --git a/src/components/nav/test/simple-nested-navs/pages/third-page/third-page.module.ts b/src/components/nav/test/simple-nested-navs/pages/third-page/third-page.module.ts new file mode 100644 index 0000000000..3ae80405cc --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/third-page/third-page.module.ts @@ -0,0 +1,13 @@ +import { NgModule } from '@angular/core'; +import { IonicPageModule } from '../../../../../..'; +import { ThirdPage } from './third-page'; + +@NgModule({ + imports: [ + IonicPageModule.forChild(ThirdPage) + ], + declarations: [ + ThirdPage + ] +}) +export class ThirdPageModule { } diff --git a/src/components/nav/test/simple-nested-navs/pages/third-page/third-page.ts b/src/components/nav/test/simple-nested-navs/pages/third-page/third-page.ts new file mode 100644 index 0000000000..11ac343c9e --- /dev/null +++ b/src/components/nav/test/simple-nested-navs/pages/third-page/third-page.ts @@ -0,0 +1,24 @@ +import { Component } from '@angular/core'; +import { IonicPage, NavController } from '../../../../../..'; + +@IonicPage() +@Component({ + selector: 'page-home', + template: ` + + + Tab 1 + + + + Third Page + + ` +}) +export class ThirdPage { + + constructor(public navCtrl: NavController) { + + } + +} diff --git a/src/navigation/deep-linker.ts b/src/navigation/deep-linker.ts index 43c4d26f59..30eb98464c 100644 --- a/src/navigation/deep-linker.ts +++ b/src/navigation/deep-linker.ts @@ -147,9 +147,11 @@ export class DeepLinker { if (isNav(nav)) { segments.push(this.getSegmentFromNav(nav as NavController)); nav = nav.parent; - } else { + } else if (isTab(nav)) { segments.push(this.getSegmentFromTab(nav)); nav = nav.parent && nav.parent.parent; + } else { + nav = nav.parent; } } return segments.reverse();