【问题标题】:AsyncPipe not updating properlyAsyncPipe 没有正确更新
【发布时间】:2018-12-28 10:15:18
【问题描述】:

我目前正在尝试将 Angular AsyncPipe 与 ngIf 结合使用。生产中的 observable 来自 HttpService,它通过重试策略进行了扩展以进行错误处理。

模板如下所示:

<div *ngIf="(configuration$ | async) as configuration; else loading">
  <p>{{configuration}}</p>
</div>

<ng-template #loading>
  <p>Loading...</p>
</ng-template>

重试策略使用对话框来处理错误,在对话框关闭后,应重新运行可观察对象。

如果没有发生错误,则模板正在正确加载并且一切正常。但是,在开始时仅发生一个错误并且用户关闭对话框以开始重试后,模板中未正确显示该值。

我也加入了example

在示例中,我从 Angular 模拟 HttpService 以显示行为。

【问题讨论】:

  • 检查你的控制台是否有错误
  • 为什么一开始就报错

标签: angular rxjs observable retrywhen


【解决方案1】:

您在开头通过observable.error 抛出错误。改变你的逻辑或删除它。

public getConfiguration(): Observable<string> {
  return Observable.create((observer) => { 
      observer.next('Hello World.'); 
  });
}

Demo

【讨论】:

  • 我提供的示例只是显示我正在经历的行为的示例。在生产中,我使用 HttpService 可以在开始时抛出错误。
猜你喜欢
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多