【问题标题】:How to hide unused items with ngFor ionic?如何使用 ngFor ionic 隐藏未使用的项目?
【发布时间】:2019-08-01 03:18:07
【问题描述】:

我试图从 ngFor 隐藏未使用的项目,问题是,我确实成功隐藏了它,但它的位置仍然存在并且是空的,如下图所示:

我的 ts 文件:

coupon: any;
  couponz() {
    var data=[];
    for (let co of this.shared.couponz){
    data.push({ code: co.code, coEmail: co.email_restrictions[0], expiry: co.date_expires });
    this.coupon = data;
    console.log(this.coupon)
    }return data
  }

我的数据提供者:

@Injectable()
export class SharedDataProvider {

  public couponz;

this.config.Woocommerce.getAsync("coupons/").then((data) => {
  this.couponz = JSON.parse(data.body);
});

我的html:

  <ion-list padding>
    <ion-item *ngFor="let c of coupon; trackBy: trackElement"> 
      <div *ngIf="c.coEmail == shared.customerData.email">
      {{c.expiry}}
      {{c.code}}
      </div>
      </ion-item>
  </ion-list>

【问题讨论】:

    标签: angular ionic-framework angular-template angular-ngfor


    【解决方案1】:

    两种选择:

    将模板重构为以下内容:

    <ion-list padding>
      <ng-container *ngFor="let c of coupon; trackBy: trackElement">
        <ion-item *ngIf="c.coEmail == shared.customerData.email">
          <div >
            {{c.expiry}}
            {{c.code}}
          </div>
         </ion-item>
      </ng-container>
     </ion-list>
    

    或者将过滤后的列表元素存储在组件的另一个实例成员中:

    this.filteredCoupons = this.coupons.filter(c => c.coEmail == this.shared.customerData.email)
    
    <ion-list padding>
        <ion-item *ngFor="let c of filteredCoupons; trackBy: trackElement"> 
          <div>
          {{c.expiry}}
          {{c.code}}
          </div>
         </ion-item>
      </ion-list>
    

    【讨论】:

      猜你喜欢
      • 2020-09-24
      • 1970-01-01
      • 2019-10-01
      • 1970-01-01
      • 2016-08-20
      • 2018-12-24
      • 1970-01-01
      • 2023-04-02
      • 2018-06-04
      相关资源
      最近更新 更多