角。NgIf 异步布尔值与普通布尔值不起作用



我有这个代码

(selectCurrentErrorCode$ | async) || data.isError ? 'error' : 'no error'

有时我需要从状态(Observable(检查异步错误,有时我想直接传递错误(data.isError(。但在这个例子中,Observable不起的作用

我怎样才能解决这个案子?

我试着做了两个单独的方块,但看起来不太好

我建议简单地构建一个完成所有工作的辅助Observable:

this.errorText$ = this.selectCurrentErrorCode$.pipe(
map(errorCode => errorCode || this.data.isError ? 'error' : 'no error')
);

在模板中,您只需使用

<element *ngIf="errorText$ | async"></element>

混合和匹配Observables和静态变量是不好的做法,尤其是在模板中。此外,不要像一位评论者建议的那样使用函数,因为它将在每个变化检测周期中被调用。非常糟糕的做法。

最新更新