gpt4 book ai didi

使用 routerLink 的 Angular Mat-Tab-Group 导航

转载 作者:行者123 更新时间:2023-12-04 03:44:31 28 4
gpt4 key购买 nike

我的网址是 localhost:port/home当我点击垫子选项卡时,我想将 url 调整为 home/secondTab、home/thirdTab 或 home/firstTab。我希望使用此设置,但它不起作用。

我想构建一条路线,目标是当我告诉路由器 router.navigate(['home/secondTab'],他加载 homecomponent 和 secondTabComponent 并且用户将 secondTab 放在焦点上。

所有子路由 (home/secondTab) 似乎都不起作用,url 永远不会在点击时更新,当我自己输入 home/secondTab url 时,HomeComponent 被加载。所以简而言之,没有任何效果,也找不到与每个人都在使用 nav mat + mat-tab-link 相同类型设置的示例

我是前端开发的新手,官方文档对我来说不是很清楚。每个组件都需要一个路由模块吗?或者我可以在此设置中在应用程序路由中完成所有这些操作吗?我拥有的设置是否可能是我想要的,或者我是否遗漏了什么?感谢您的输入。

对于那些指向 nav mat + mat-tab-link 的,由于其他流程以这种方式工作,我无法像那样重构它。

主页.html

<mat-tab-group (selectedTabChange)="selectedTabChanged($event)" >
<mat-tab label="FirstTab" >
<app-FirstTab></app-FirstTab>
</mat-tab>
<mat-tab label="SecondTab" >
<app-SecondTab></app-SecondTab>
</mat-tab>
<mat-tab label="ThirdTab" >
<app-ThirdTab></app-ThirdTab>
</mat-tab>
</mat-tab-group>

首页.ts

selectedTabChanged(event: any){
if(event.index == 0){
this.Service.refreshTab();
}

if(event.index == 1){
this.Service.makeApiCall();
}

if(event.index == 2){

}
}

导航.html

<div>
<strong [routerLink]="['home/secondTab']" >
</strong>
</div>

应用程序路由.ts

const routes: Routes = [
Shell.childRoutes([
{ path: '', redirectTo: '/login', pathMatch: 'full' }, //works
{ path: 'home', component: HomeComponent }, //works

{ path: 'home/secondTab', component: SecondTabComponent } //loads HomeComponent
//OR
{ path: 'home/secondTab', component: HomeComponent, loadChildren: () =>
import ('./home/Second/Second.cmpnt').then(m => m.SecondTabComponent) }
])
];

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

最佳答案

你可以这样做。通过路由器参数传递 FirstTab、secondTab 或 thirdTab

Check this

然后你可以订阅 paramMap 并可以写这样的东西。

<mat-tab-group [(selectedIndex)]="demo1TabIndex" (selectedTabChange)="selectedTabChanged($event)" >
<mat-tab label="FirstTab" >
<app-FirstTab></app-FirstTab>
</mat-tab>
<mat-tab label="SecondTab" >
<app-SecondTab></app-SecondTab>
</mat-tab>
<mat-tab label="ThirdTab" >
<app-ThirdTab></app-ThirdTab>
</mat-tab>
</mat-tab-group>

...

    public demo1TabIndex = 1;

ngOnInit() {
this.route.paramMap.subscribe(params => {
let tabName = params.get('tabn;ame')

let _index = 1;

if(tabName == 'FirstTab'){
this.index = 1;
}

if(tabName == 'secondTab'){
this.index = 2;
}


if(tabName == 'thirdTab '){
this.index = 3;
}

this.demo1TabIndex = _index;
}

我只是给你想法,然后根据你的需要定制代码。

关于使用 routerLink 的 Angular Mat-Tab-Group 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65386142/

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