首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Angular 5中重新渲染(重新加载)路由器出口

在Angular 5中重新渲染(重新加载)路由器出口
EN

Stack Overflow用户
提问于 2018-06-01 23:17:58
回答 1查看 859关注 0票数 3

我有一个角度5,并有一个重新渲染(重新加载)路由器出口的问题。我有一个链接http://example.com/:unit/home/somethingElse。在头文件中,我有一个用来更改unit的切换器。当发生这种情况时,我需要从服务器检索新数据,并将其放入页眉、主页和页脚(我在这些组件中的ngOnInit中有http方法)。当我更改unit (url)时,数据保持不变。

我试着使用:this.router.routeReuseStrategy.shouldReuseRoute = () => false; It works。但每次我导航到其他页面时,它都会重新呈现页眉和页脚。

我知道我可以在this.activatedRoute.params.subsribe()中使用并将我所有的http方法放在那里,但是为了实现这个变通方法,我需要重写很多代码。

有没有办法在我需要的时候重新渲染(重新加载)特定的router-outlet?你能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 04:33:10

如果您可以使用shouldReuseRoute = () => false,那么一般的方法是创建一个自定义的RouteReuseStrategy。在shouldReuseRoute中,您可以检查相同路由组件的路由参数是否不同,如果是,则返回false,例如:

代码语言:javascript
复制
if (future.component === curr.component) {
  if (curr.paramMap.keys.length) {
     const diff = curr.paramMap.keys.filter((key) =>
       curr.paramMap.get(key) !== future.paramMap.get(key));
     if (diff.length) { return false; }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50646552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档