我正在忙于MeteorJS和RxJS,它们正在退出,但有时也有些混乱。 我当前的问题仅是Angular NgRx问题,与MeteorJS不相关。
如示例所示,有一个基于ngIf
的{{1}}。此布尔值设置为showChannels
。但是,内部的async for循环引用到了我的store.select。
但是,由于ngIf,永远不会执行管道中的运算符。这似乎是一个僵局。
如何启用订阅才能开始工作?
当我进行搜索时,它会将频道添加到商店中,并且如果false
循环中没有store.select
,则ngIf
将起作用。
当我将if替换为ngFor
时,它将起作用,但是当我进行一次搜索时,*ngIf="(channels$ | async) ?.length !== 0"
将运行两次。
带有{subscribe}的带注释的store.select实际上可以使用tap
很好地工作。关于不使用markForCheck
时最好的解决方案的任何建议?
subscribe
答案 0 :(得分:2)
*ngIf="channels$ | async as channels"
答案 1 :(得分:0)
如果您有多个订阅并且它们不是嵌套的,那么您也可以使用share
或shareReplay(1)
。如果所有订阅都同时进行,请使用share
,否则应使用shareReplay(1)
。