【问题标题】:angular2 viewing observable with async pipe not renderingangular2查看可观察的异步管道不渲染
【发布时间】:2016-08-14 01:31:16
【问题描述】:

我正在使用@ngrx/store,我正在从商店中获取状态的一部分。

我有一个想要显示该切片的组件。但是,由于模板中存在{{ obs$ | async}},因此不会呈现整个模板。如果我删除了{{ obs$ | async }},则呈现SLICE:

知道为什么会出现这种情况或如何诊断问题吗? JS 控制台没有显示任何错误。

@Component({
  selector: 'slice',
  template: `SLICE: {{ obs$ | async }}
})
export class Slice {
  obs$: Observable<any>
  constructor(private store:Store<any>) {
    this.obs$ = this.store.select(s => s.slice);
  }
}

【问题讨论】:

  • 我发布了我的(现已删除)答案,却没有注意到您说控制台中没有任何错误 - 这不是真的,或者您确实有@ 987654326@ 在您的组件元数据中,否则您使用未导入的管道肯定会抛出......
  • 我添加了pipes: [AsyncPipe],但无济于事。控制台绝对不会显示任何错误。这可能是由于一些不相关的事情,它以这种方式表现出来。
  • 宾果游戏。除非AsyncPipe 现在在全球范围内可用(对我来说这将是新闻),否则应该在没有导入的情况下抛出,如果不是,那么某处的某些地方是非常错误的。作为健全性检查,请尝试在模板中将obs$ | async 替换为obs$ | gibberish,看看是否会抛出
  • 更新:我该死,看来他们已经AsyncPipe 全球可用,所以请忽略上述内容。在这种情况下,要调试它。在您的组件构造函数中订阅obs$ 并在订阅中记录每个值
  • 你能展示你的方法的一个版本吗?

标签: angular rxjs5


【解决方案1】:

我曾经遇到过类似的问题。在我的情况下,当在 *ngFor 块内使用 async 管道时,angular 没有呈现模板。

我包含了 Angular2.beta13 的缩小版本,我通过包含 Angular 和美化的 JavaScript 来解决。

https://stackoverflow.com/a/36458828/2332293

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 2019-09-22
    • 2018-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多