如何以编程方式重定向到root并保持先前​​的页面状态

时间:2019-06-04 08:35:36

标签: ionic4 angular-router

我的Angular 7.2.4的Ionic 4(.12)-项目在使用角度路由器时遇到了一些麻烦。目前,我有一个侧菜单,可以导航到3个不同的页面。

  • 第1页包含三个标签页
  • 第2页 3 保留一个页面
  • 第1页中,选项卡的内容是动态创建的。

我希望第1页第2页是兄弟姐妹,因此我在以下类似对象之间进行导航:

<ion-item *ngFor="let item of navList" [routerLink]="item.link" routerDirection="root">
    <ion-label> {{ item.label }} </ion-label>
    ion-icon [name]="item.icon" slot="start"></ion-icon>
</ion-item>

第3页是一个子页面,应该有一个离子后退按钮,该按钮显示前一页:

<ion-item routerLink="/page3" routerDirection="forward">
    <ion-label> Page 3 </ion-label>
    <ion-icon name="airplane" slot="start"></ion-icon>
</ion-item>

到目前为止,一切都很好。但是,在第1页和第2页之间导航时,第1页的动态创建内容丢失了。 (我猜测页面状态会被丢弃,或者创建一个新页面并将其推入导航堆栈。)

我的问题是:如何保留动态创建的内容,但仍导航到具有routerDirection="root"的页面?


其他代码:

const routes: Routes = [
    { path: '', redirectTo: '/page1', pathMatch: 'full' },
    { path: 'page1', loadChildren: './gui/page1/page1.module#Page1Module' },
    { path: 'page2', loadChildren: './gui/page2/page2.module#Page2Module' },
    { path: 'page3', loadChildren: './gui/page3/page3.module#Page3Module' }
];

动态组件的创建是在列表上有ViewContainerRefComponentFactoryResolver


编辑

我通过使用以下方法实现了同级相对性:

this.router.navigate([item.link], { relativeTo: this.route });

0 个答案:

没有答案