【发布时间】:2018-06-01 15:17:58
【问题描述】:
我有 Angular 5,但在重新渲染(重新加载)路由器插座时遇到问题。
我有一个链接http://example.com/:unit/home/somethingElse。在标题中,我有一个切换器来更改unit。当它发生时,我需要从服务器检索新数据并将其放入页眉、主页和页脚(我在这些组件中的 ngOnInit 中有 http 方法)。当我更改 unit (url) 时,数据保持不变。
我尝试使用:
this.router.routeReuseStrategy.shouldReuseRoute = () => false; 它有效。
但每次我导航到其他页面时,它都会重新呈现我的页眉和页脚。
我知道我可以在this.activatedRoute.params.subsribe() 中使用并把我所有的http 方法放在那里,但是为了实现这个解决方法,我需要重写很多代码。
有没有办法在我需要的时候重新渲染(重新加载)特定的router-outlet?你能帮帮我吗?
【问题讨论】:
-
当您说
the data remains unchanged时,它暗示了许多可能的原因。可能是解析器,可能是变更检测,也可能是错误。提供理解问题所需的源代码。 -
我正在检索
ngOnInit中的数据,并且这些组件已经呈现,所以ngOnInit只运行一次。我知道如果动态 url 发生变化,它应该重新渲染,但如果它发生在同一个模块和路由中。但是我在嵌套模块的第一级和我在第三级检索数据的那些组件中有动态 url。
标签: javascript angular typescript