gpt4 book ai didi

javascript - 如何在 Angular 中使用相同的组件进行路由

转载 作者:行者123 更新时间:2023-12-04 07:54:42 25 4
gpt4 key购买 nike

我为我的路由器使用相同的组件,第一次单击受影响的组件,但在下一次单击组件时仍处于第一个状态。
这是更改路线的脚本

<a [routerLink]="['react/1']">link 1</a>
<a [routerLink]="['react/2']">link 2</a>
这是我的路由器模块
面板路由.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router'
import { PanelCoursesComponent } from 'src/app/components/panel-courses/panel-courses.component';
import { PanelHomeComponent } from 'src/app/components/panel-home/panel-home.component';
import { PanelIntroComponent } from 'src/app/components/panel-intro/panel-intro.component';

const routes: Routes = [
{ path: '', component: PanelHomeComponent },
{ path: 'react', component: PanelIntroComponent },
{ path: 'react/:no', component: PanelCoursesComponent } //the target
]

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

面板类(class).component.ts
import { Component, OnInit } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router'

@Component({
selector: 'app-panel-courses',
templateUrl: './panel-courses.component.html',
styleUrls: ['./panel-courses.component.scss']
})
export class PanelCoursesComponent implements OnInit {
url!: any

constructor(private route: ActivatedRoute, private router: Router) {
console.log('route')
}

ngOnInit(): void {
this.url = this.router.url
console.log(this.route.snapshot.params) //the test script
}

}
在 PanelCourseComponent 上,我尝试控制台记录参数,但这仅在第一次单击时执行一次。
我错过了什么吗?

最佳答案

您可以使用 this.route.params.subscribe这种情况的方法
这是示例

ngOnInit(): void {
this.route.params.subscribe(params => {
console.log(params) // It will be executed whenever you click the link
})
}

关于javascript - 如何在 Angular 中使用相同的组件进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66766403/

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