首页 > 解决方案 > 路由器导航而不调用服务器——重用组件?

问题描述

我有三个相关的下拉列表,用户将单击它们以浏览不同的区域,并且当用户单击它们时,我希望路由器更新,但不重新加载页面。

我尝试了 location.replaceState(),但我无法使用它创建 UrlTree,因为 location 不会更新路由器。

我以这种方式设置了路径

{
      path: '/area/ma/:id',
      component: SomeComponent
}

在下拉列表中,(click)调用router.navigate()并设置上面的 url。现在SomeComponent已经初始化,它总是调用一个服务来联系服务器以获取区域数据ngOnInit()有没有办法防止这种情况发生?

some.component.ts

ngOnInit() {
    this.getArea();
}

getArea(): void {
    this.metadataService.getMeta()
        .subscribe(meta => {
            this.area= meta;
        });
}

标签: angularlocationcommand-line-interfacerouter

解决方案


推荐阅读