javascript - 使用ngif ionic4过滤ngfor中的json数据

标签 javascript arrays json angular ionic-framework

我正在创建 Angular 为 8 的 ionic 应用程序,我尝试显示来自 json 文件的数据并在 home.page.html 中使用 ngif 对其进行过滤,这是我的代码

<ion-slides class="links_slide" [options]="sliderConfig">
<ion-slide *ngFor="let item of items">
  <div *ngIf="item.status === 'marketplace'">
    <ion-card class="list-container" (click)='webview()' [style.backgroundImage]="'url('+item.iconlink+')'">
    </ion-card>
    <ion-card-title class="label">{{ item.name }}</ion-card-title>
  </div>
</ion-slide>

这是json

[
    {
        "id": "0",
        "status":"marketplace",
        "name": "Webstore",
        "link": "https://youthscarf.com",
        "iconlink": "http://atmoweb.id/wp-content/uploads/2019/10/ysweb.jpg"
    }
    {
        "id": "6",
        "status":"oa",
        "name": "Instagram Signature",
        "link": "https://instagram.com/youthcatalog_id/",
        "iconlink": "http://atmoweb.id/wp-content/uploads/2019/10/listdummy.jpg"
    }
]

但现在我遇到了问题,我过滤的数据列表没有显示,但它们仍然以 html 格式显示,我的意思是这样。

here's the image

我标记在 html 中显示的数据,它们不显示。如何解决这个问题

最佳答案

问题是您在 <ion-slide> 上循环所以不管有没有*ngIf被评估为真,<ion-slide>将显示内容为空的渲染。您可以使用 *ngFor<ng-container> 上循环遍历项目。然后添加 *ngIf<ion-slide> .

<ng-container *ngFor="let item of items">
  <ion-slide *ngIf="item.status === 'marketplace'">
    <div >
      ...
    </div>
  </ion-slide>
</ng-container>

https://alligator.io/angular/ng-container-element/


另一种选择是通过调用 ts 文件中的方法来过滤项目。

items-list.component.html

<ion-slide *ngFor="let item of getMarketplaceItems(items)">
  <div >
    ...
  </div>
</ion-slide>

items-list.component.ts

getMarketplaceItems(items) {
  return items.filter(item => item.status === 'marketplace');
}

关于javascript - 使用ngif ionic4过滤ngfor中的json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59116599/

相关文章:

sql - 从 postgres 表中选择所有现有的 json 字段

javascript - Jquery 克隆每个都没有按预期工作

javascript - 如何通过jquery拦截所有submit()事件

c++ - 如何复制由 vector 组成的数组

javascript - Ionic 2 - 列出 JSON 响应中的数组项

javascript - 在选项中解析JSON响应值

javascript - 关闭 Angular 模态后如何重置所有 HTML 输入字段

javascript - 禁用元素外部的点击

php - 删除某些值时如何排列键?

c++ - 为什么 cin.getline 会分配给字符数组,但使用 '=' 却不会?