我正在构建一个Angular-Ionic应用程序。我使用的是独立的方法。我在我的'tabs.routes-ts'指向我的3标签路由。选项卡3指向另一个名为“settings-routes.ts”的路由列表在这里我想显示我的应用程序的设置选项。目前我只有路由到darkmode更改.导航工作也。
现在来说说我的问题:
如果我从选项卡tab 3转到tab 3/colormode,然后返回到tab 2。应用程序工作。但是如果我想从tab 2更改为tabtab 3。而不是出现tab 3tabtab 3/colormode。我知道angular会保存最后定义的路径。我该如何解决这个问题,或者告诉它先去“tab 3”,然后用户可以决定去哪里。
我所尝试的:
我试图添加一个childern数组在'settings-routes. ts'.这并不奏效。tabs.routes.ts
import { Routes } from '@angular/router';
import { TabsPage } from './tabs.page';
import { Tab1Page } from '../tab1/tab1.page';
import { Tab2Page } from '../tab2/tab2.page';
import { Tab3Page } from '../tab3/tab3.page';
export const routes: Routes = [
{
path: 'tabs',
component: TabsPage,
children: [
{
path: 'tab1',
component: Tab1Page
},
{
path: 'tab2',
component: Tab2Page
},
{
path: 'tab3',
loadChildren: () =>
import('../tab3/settings-routes').then((m) => m.SettingsRoutes),
},
{
path: '',
redirectTo: '/tabs/tab1',
pathMatch: 'full',
},
],
},
{
path: '',
redirectTo: '/tabs/tab1',
pathMatch: 'full',
},
];
settings-routes.ts
import { Route } from "@angular/router";
import { Tab3Page } from "./tab3.page";
import { ColormodeComponent } from "./settings/colormode/colormode.component";
export const SettingsRoutes: Route[] = [
{
path: '',
component: Tab3Page,
//dont work
/* children: [{
path: 'colormode',
component: ColormodeComponent
}] */
},
{
path: 'colormode',
component: ColormodeComponent
}
]
tab3.page.html
<ion-header>
<ion-toolbar color="secondary">
<ion-buttons slot="start">
<ion-back-button></ion-back-button>
</ion-buttons>
<ion-title>Settings</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-card class="bg-white ion-no-margin">
<ion-card-content>
<h1 margin-bottom>
<ion-text color="primary"><strong>test</strong></ion-text>
</h1>
<p margin-bottom>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illum odio placeat incidunt nesciunt atque ratione
quisquam, fugit omnis maxime adipisci excepturi dignissimos aliquam asperiores itaque unde sequi? Minus, quia,
dolore?
</p>
<nav>
<ul>
<li>
<a routerLink="colormode">Colormode</a>
</li>
</ul>
</nav>
</ion-card-content>
</ion-card>
</ion-content>
1条答案
按热度按时间kpbwa7wx1#
选项卡的这种行为是有意的。当你转到一个标签的子页面时,它会被保存,当你试图转到该标签时,你会转到保存的页面,直到你通过其他方式返回。如果这不是你想要的,你有两个解决方法:
1.不要将
tab3/colormode
页面用作子页面。有一个独立的页面(如/colormode
),并转到该页面时,一个特定的按钮被点击。当然,你不会再在这个页面上看到标签了,在我看来,这是一个更好的用户体验,我建议这个解决方案。1.检测用户何时单击选项卡(通过
(click)
事件),并在每次单击选项卡时强制加载所需的页面。