我的Angular 7.2.4的Ionic 4(.12)-项目在使用角度路由器时遇到了一些麻烦。目前,我有一个侧菜单,可以导航到3个不同的页面。
我希望第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' }
];
动态组件的创建是在列表上有ViewContainerRef
和ComponentFactoryResolver
。
编辑
我通过使用以下方法实现了同级相对性:
this.router.navigate([item.link], { relativeTo: this.route });