强制Angular2在导航时重新加载组件
在Angular2中,RC1和lower调用路由链接总是导致组件重新加载:
<a [routerLink]="['/page', {id: 1}]">A link </a>
使用Angular2,不使用RC,如果使用不同的参数导航到自身,组件不会重新加载。 有什么方法可以重新加载重新加载行为吗?
我理解处理这种情况的另一种方式,从ActivatedRoute订阅并检测到变量更改,但这会导致组件逻辑的复杂性增加。
尽管你已经提到'ActivatedRoute'以及它会如何复杂你的代码,但我认为这会帮助其他人在遇到你的问题时面临这个问题,比如我:)。
本主题将回答您的问题。
下面的代码(从上面的主题粘贴)是'魔术'发生的地方。 如果您将“重新加载”代码放入此subsribe函数,您的组件将重新加载。
ngOnInit() {
this.sub = this.route.params.subscribe(params => {
this.id = +params['id']; // (+) converts string 'id' to a number
// Some 'reload' coding
// In a real app: dispatch action to load the details here.
});
}
一个简单的方法是使用* ngIf强制模板重新加载。 您需要一个“关闭和打开组件”的变量。 如果在关闭/开启行为之前变量的值已经发生变化,那么当视图再次打开时,它们将被渲染。
链接地址: http://www.djcxy.com/p/36895.html上一篇: Force Angular2 to reload component on navigate
下一篇: can you safely re