我可以使用 {status_async | 来显示 Observable 生成的值html 中的 async}
。
但是,我如何测试这个 Observable 是否等于某个东西?
具体来说,我想用它来分配一个类:
<div [ngClass]="{'has-danger': status_async == 'created before'}">
<input type="text">
</div>
我发现我可以使用:
<div [ngClass]="{'has-danger': (status_async | async) == 'created before'}">
但问题是我已经使用了异步两次(此处用于显示值)。
当我检查成功创建的状态时,具有讽刺意味的是,在第二次异步之后,即使我只单击一次创建按钮,值也会更改为“之前创建”。
如何解决这个问题?
最佳答案
在同一个可观察对象上使用多个异步管道时需要小心,因为这意味着它现在有多个订阅者(订阅方法被调用多次,每次使用异步管道一次)。
对于通过 HTTP 调用创建的可观察量,如果订阅两次,相应的请求将被调用两次)...默认情况下,此类可观察量是冷的(它们无法共享)。
您需要使用 share 方法使您的 observable 变得热门:
this.status_async = this.status_async.share();
关于angular - 测试 Angular 2 Observable 给出 CSS 类的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35536773/