我有一个角度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
?你能帮我吗?
发布于 2018-06-04 04:33:10
如果您可以使用shouldReuseRoute = () => false
,那么一般的方法是创建一个自定义的RouteReuseStrategy
。在shouldReuseRoute
中,您可以检查相同路由组件的路由参数是否不同,如果是,则返回false,例如:
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; }
}
}
https://stackoverflow.com/questions/50646552
复制相似问题