gpt4 book ai didi

Angular 5.2 onSameUrlNavigation 不工作

转载 作者:太空狗 更新时间:2023-10-29 17:00:15 25 4
gpt4 key购买 nike

我试图在我的 Angular 5.2 应用程序中重新加载我的导航,但没有成功。如果参数不变, Angular 路由器将忽略我的导航。

我如何导航:

this.router.navigate(['/search', buildParamsFromSearchCriteria(criteria)]);

导航到:

/search;pageSize=20;page=1;orderBy=price;sortDirection=ASCENDING

我的模块配置:

imports: [RouterModule.forRoot(appRoutes, { preloadingStrategy: PreloadAllModules, enableTracing: false, onSameUrlNavigation: 'reload' })],

最佳答案

可以用更简单的方法来完成。下面是一个小示例代码:

在routing.module: "/product/:id/details"

import { ActivatedRoute, Params, Router } from ‘@angular/router’;

export class ProductDetailsComponent implements OnInit {

constructor(private route: ActivatedRoute, private router: Router) {
this.route.params.subscribe(params => {
this.paramsChange(params.id);
});

}

// Call this method on page load
ngOnInit() {
}

// Call this method on change of the param
paramsChange(id) {
}

一般的解释是……当这意味着性能下降时,为什么要销毁已经存在的组件实例并为相同的情况创建一个新的实例?这与使用路由模式/product/:id 的行为完全相同,其中还为/product/5、/product/6、...保留相同的组件实例

因此,由于组件实例相同,您应该根据某些发出的事件(解析器/保护)而不是基于 OnInit Hook 来重新初始化组件。

关于 Angular 5.2 onSameUrlNavigation 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48944553/

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