强制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