【问题标题】:How to refresh data in other components (Angular 7, router.navigate) when navigating from one to another?从一个导航到另一个时如何刷新其他组件(Angular 7,router.navigate)中的数据?
【发布时间】:2020-02-04 23:18:14
【问题描述】:

我是前端开发新手,应用在 Angular 7 中

我的主页包含项目列表,单击每个项目将重定向到另一个页面。在导航时,我希望标题栏(第三个组件)针对我单击的项目进行更新。现在它只有在我手动重新加载页面时才会更新

我正在使用路由器导航

 router.navigate([route]);

.......编辑......

我已经尝试了以下链接......

https://medium.com/@rakshitshah/refresh-angular-component-without-navigation-148a87c2de3f

但它抛出错误 - 对象已取消订阅,

还尝试了激活路由器而不是路由器

【问题讨论】:

  • 你必须使用路由作为一个可观察的而不是激活的路由快照
  • 谢谢,你能告诉我更多关于这方面的信息吗?
  • 感谢@DhananjaiPai 的链接,这似乎是 Routerlink 的解决方案,但我希望更新 span 元素。我的链接工作正常,我可以导航到第二个组件。

标签: html web-services data-binding bootstrap-4 angular7


【解决方案1】:

尝试用这个更新标题

  function updateDiv()
{ 
$( "#here" ).load(window.location.href + " #here" ); 
}

您可以更改您在该标题上设置的 .class(class) 的#here(id)。它应该在不重新加载的情况下更新页面的该部分

【讨论】:

  • 嗨@Marek Langer,没有jquery可以吗?
  • 嗨,我不确定,我用它来做其他事情反正用这个:<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
  • 感谢您的回答,我没有使用函数解决了,只是在导航方法后添加了window.location.href =
【解决方案2】:

导航后我刷新了页面。导航方式在路由器中。

router.navigate([next]);
window.location.href = 'next'; 

next(string) 是您希望当前页面导航的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-02
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-03
    • 2019-08-20
    相关资源
    最近更新 更多