Angular2 ngFor - 如果没有值则跳过

标签 angular

我有这个 json 对象:

data = {

  "name": "somename",
  "items": [
    {
      "title": "Item 1",
      "description": "Some description for item1"
    },
    {
      "title": "Item 2",
      ""
    },
    {
      "title": "Item 3",
      "description": "Some description for item3"
    }
  ]
}

对于 *ngFor 和仅显示具有描述的项目,推荐的 rc2 方法是什么?

HTML 模板:

<li *ngFor="let item of data.items" class="item">
        <div>{{item.title}}</div>
        <div>{{item.description}}</div>
</li>

最佳答案

在重复元素上添加一个 *ngIf 并检查 length 属性的虚假条件,如下所示:

<ul>
    <template ngFor let-item [ngForOf]="data.items">
        <li class="item" *ngIf="item?.description?.length">
            <div>{{item.title}}</div>
            <div>{{item.description}}</div>
        </li>
    </template>
</ul>

您不能从同一元素上的 *ngIf 中的 *ngFor 访问 item 变量,这就是为什么您需要添加一个 template 标签封装 li.


Working Plunker for example usage

关于Angular2 ngFor - 如果没有值则跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38079314/

相关文章:

angular - "enableProdMode()"和 "build --prod"等价吗?

angular - 如果无法激活其关联路由,则隐藏 routerLink?

json - Angular 4 HTTP 不返回 JSON 正文

javascript - this.file.dataDirectory 在 ionic2 中显示为 null

angular - 当对象属性以数值(数字)开头时,如何在 typescript html 中显示对象的数据

css - FontAwesome 为什么图标以 SVG 格式呈现?

*ngFor 循环中的 Angular 2 内联编辑

javascript - 将(旋转的)ImageOverlay 内的 X 和 Y 坐标转换为纬度和经度

javascript - Angular 2 : Class Properties Not Updating On params retrieval

angular - 如何减轻标签点击?