应该如何使用router.renavigate()?

时间:2016-04-25 13:38:24

标签: angular url-routing

在三个级别的组件中,我有一个ajax调用,用于更新服务器上的数据,该数据显示在父控件和父控件中。

我希望导航到浏览器中显示的当前网址,该网址应重新初始化父控制并从服务器获取新数据。

如果我使用相同的网址详细信息调用router.navigate(...)或router.navigateByUrl(...),则不会发生任何事情。

如果我添加时间戳作为参数,以便网址发生变化,那么一切都按照我预期的方式运行。

我在另一篇文章中看到,一个用户提到使用router.renavigate(),这听起来很完美,但显然它也不起作用(至少在上面的情况下)。

这是一个错误还是根据设计?

1 个答案:

答案 0 :(得分:1)

来自此评论https://github.com/angular/angular/issues/5916#issuecomment-214303206

  每次发言都不是错误。如果在运行时动态配置路由,router.renavigate不会再次导航。 router.lastNavigationAttempt仅在调用router.navigateByUrl时更新。在初始加载时调用navigateByUrl,除非您手动使用它,否则不会再次调用它,因为其他导航功能如router.navigate和router.navigateByInstruction也不会更新lastNavigationAttempt。

我宁愿将数据绑定到服务并更新服务中的数据,并以共享数据更改时自动更新的方式设计组件。