gpt4 book ai didi

javascript - url 更改但 angular 无法导航

转载 作者:行者123 更新时间:2023-12-04 02:43:14 24 4
gpt4 key购买 nike

我有 2 个链接,如下所示。当我第一次点击任何一个时,它会导航到它,但是当我点击之后的第二个链接时,网址会发生变化,但它不会导航到它。

<li><a routerLink="/order/buyer" >Buyer</a></li>
<li><a routerLink="/order/seller">Seller</a></li>

这些是我的路线配置:

app.routing.module.ts
const routes: Routes = [
{
path: '',
pathMatch: 'full',
component: RootComponent,
},
{
path: '',
children: [
{
path: 'order',
loadChildren: './order/order.module#OrderModule',
}
]
}

order.module.ts
export const ROUTES: Routes = [
{
path: ':orderParty/:id',
component: OrderDetailComponent,
canDeactivate: [OrderDetailGuardService]
},
{
path: ':orderParty',
component: OrderListComponent
}
];

尝试了几件事,但没有奏效。我注意到在第二次点击时,'OrderListComponent' 的 ngOnInit() 没有被调用。

最佳答案

在 Angular 中,您有几个选项可以解决这个常见问题,最常见的是使用这个 GitHub 线程上的解决方案:
https://github.com/angular/angular/issues/13831#issuecomment-319634921

constructor(private router: Router){
// override the route reuse strategy
this.router.routeReuseStrategy.shouldReuseRoute = function(){
return false;
}

this.router.events.subscribe((evt) => {
if (evt instanceof NavigationEnd) {
// trick the Router into believing it's last link wasn't previously loaded
this.router.navigated = false;
// if you need to scroll back to top, here is the right place
window.scrollTo(0, 0);
}
});

}

另一种解决方案是订阅您的路由器参数并根据本文建议的新参数处理更改:
this.activeRoute.params.subscribe(routeParams => {
this.loadUserDetail(routeParams.id);
});

https://medium.com/@mvivek3112/reloading-components-when-change-in-route-params-angular-deed6107c6bb

关于javascript - url 更改但 angular 无法导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58345399/

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