【问题标题】:Angular routerLink async state dataAngular routerLink 异步状态数据
【发布时间】:2021-03-03 22:20:21
【问题描述】:

如何将异步数据传递到 routerLink 中的 [state]?

本例中的用户是异步加载的。

编辑: 如果我在获取数据之前加载视图,这将不起作用。 见代码: https://stackblitz.com/edit/angular-router-basic-example-df6q16?file=src/app/app.component.ts

<a routerLinkActive="active" routerLink="/home" [state]="users">Home</a> 

【问题讨论】:

  • 你能不使用async管道,同时将它绑定到组件中的可观察属性吗?
  • 是的,就是这样。由于它已绑定到状态,因此这意味着只要异步调用完成并且claimantSSN 更改,它将接收该值。看起来没什么问题。
  • 参见上面的编辑和代码示例

标签: angular


【解决方案1】:

在路由器中切换到@input而不是[state]。

关键是在路由器插座上使用“激活”事件。

app.component.html:

 (activate)="onChildLoaded($event)"

app.component.ts:

 onChildLoaded(component: any) {
    if (component instanceof HomeViewComponent) {
      component.users = this.users;
    }
  }

查看解决方案

https://stackblitz.com/edit/angular-router-basic-example-854jta?file=src/app/views/home/home.component.ts

【讨论】:

    猜你喜欢
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-23
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多