在三个级别的组件中,我有一个ajax调用,用于更新服务器上的数据,该数据显示在父控件和父控件中。
我希望导航到浏览器中显示的当前网址,该网址应重新初始化父控制并从服务器获取新数据。
如果我使用相同的网址详细信息调用router.navigate(...)或router.navigateByUrl(...),则不会发生任何事情。
如果我添加时间戳作为参数,以便网址发生变化,那么一切都按照我预期的方式运行。
我在另一篇文章中看到,一个用户提到使用router.renavigate(),这听起来很完美,但显然它也不起作用(至少在上面的情况下)。
这是一个错误还是根据设计?
答案 0 :(得分:1)
来自此评论https://github.com/angular/angular/issues/5916#issuecomment-214303206
每次发言都不是错误。如果在运行时动态配置路由,router.renavigate不会再次导航。 router.lastNavigationAttempt仅在调用router.navigateByUrl时更新。在初始加载时调用navigateByUrl,除非您手动使用它,否则不会再次调用它,因为其他导航功能如router.navigate和router.navigateByInstruction也不会更新lastNavigationAttempt。
我宁愿将数据绑定到服务并更新服务中的数据,并以共享数据更改时自动更新的方式设计组件。