使用'as'语法的可观察数组的长度

时间:2018-12-10 21:37:04

标签: angular

"@angular/core": "^6.1.4"

这是我的.html:

  <div *ngIf="errors$ | async as errors">
    <div class="container alert alert-danger" *ngIf="errors.length > 0">
      <b>{{errors.length}} error(s)</b>
      <ul *ngFor="let error of errors">
        <li>{{error}}</li>
      </ul>
    </div>
  </div>

我的问题是:我可以将其缩减为一个*ngIf吗?

我尝试了以下方法:

(errors$ | async as errors).length > 0
(errors$ | async as errors) && errors.length > 0

这两个都给出了模板解析错误。

我已经看过How to check the length of an Observable array,这个问题有所不同,因为我想使用as语法。

我要做的就是使用as语法订阅可观察的内容,并且仅在数组的长度大于0时才显示此div。将不胜感激!

1 个答案:

答案 0 :(得分:2)

怎么样

*ngIf="(errors$ | async)?.length > 1 && (errors$ | async)?.length < 5"

*ngIf="(errors$ | async)?.length > 0 && (errors$ | async) as errors">

更新

在github上有一个问题。请参阅the link。显然,尚不支持此行为。