gpt4 book ai didi

带选项卡的 Angular 6 RouterLink

转载 作者:行者123 更新时间:2023-12-02 08:00:25 26 4
gpt4 key购买 nike

我有一个可以正常工作的 Angular 6/Ionic 4 延迟加载选项卡模板。主页有一个路由器导出,选项卡有辅助命名的路由器导出。但是,我无法在显示选项卡页的主菜单中创建 routerLink。

此 routerLink 仅在尚未位于选项卡页上时才有效。例如

  • 如果在测试页面:/test
  • 点击链接
  • 正确链接到:tabs/(about:about)

    链接到标签页

如果已位于主页选项卡上(并单击链接),则最终网址为:

/tabs/(about:about//home:home)

如何创建始终链接到以下内容的 routerLink?

/tabs/(about:about)

我使用此 typescript 得到了相同的行为:

this.router.navigate(['/tabs', { outlets: { about: ['about']}}]);

但是,此 typescript 可以正常工作:

this.router.navigateByUrl('/tabs/(about:about)');

app.component.html

<ion-app>
<nav>
<a [routerLink]="['/tabs', { outlets: { about: 'about' } }]">
This link only works if NOT already on tab page.
</a>
<ion-button (click)="navigateByUrl()">This always works!</ion-button>
</nav>
<router-outlet></router-outlet>
</ion-app>

app-routing.module.ts

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
{ path: '', loadChildren: './pages/tabs/tabs.module#TabsPageModule' },
{ path: 'test', loadChildren: './pages/test/test.module#TestPageModule' }
];
@NgModule({
imports: [RouterModule.forRoot(routes, { enableTracing: true } )],
exports: [RouterModule]
})
export class AppRoutingModule {}

tabs.router.module.ts

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { TabsPage } from './tabs.page';
import { HomePage } from '../home/home.page';
import { AboutPage } from '../about/about.page';
import { ContactPage } from '../contact/contact.page';

const routes: Routes = [
{
path: 'tabs',
component: TabsPage,
children: [
{
path: 'home',
outlet: 'home',
component: HomePage
},
{
path: 'about',
outlet: 'about',
component: AboutPage
},
{
path: 'contact',
outlet: 'contact',
component: ContactPage
}
]
},
{
path: '',
redirectTo: '/tabs/(home:home)',
pathMatch: 'full'
}
];

@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class TabsPageRoutingModule {}

最佳答案

在您的index.html中,您应该添加以下行。

<base href="/"> 

此处的部分可能具有不同的值,具体取决于您的根 URL。

现在在您的路由配置中编写如下所示的路由配置。

       const routes: Routes = [
{
path: 'tabs',
component: TabsPage,
children: [
{
path: 'home',
outlet: 'home',
component: HomePage
},
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
{
path: 'about',
outlet: 'about',
component: AboutPage
},
{
path: 'contact',
outlet: 'contact',
component: ContactPage
}
]
},
{
path: '',
redirectTo: 'tabs',
pathMatch: 'full'
}
];

关于带选项卡的 Angular 6 RouterLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com