ionic 3 *ngf 如何设置值

ionic 3 *ngf how to set value

我有两个循环,一个来自 firebase,另一个来自 SQlite 我想比较每个的价值 如果 SQLite 和 firebase 中的值相等,我将只打印 SQlite 而我不想打印 firebase 值 如果值不相等,我将只打印 firebase 值

这是代码

 <div *ngFor="let adv of advlist | async">

   <div *ngFor="let da of data">

      <div  *ngIf="da.key == adv.key? ok = false: ok = true">

        <ion-card style="background-color: #a7acaf">
        <ion-card-content>
         <ion-card-title>
              {{da.orgin}}
         </ion-card-title>
        <p>
          {{da.subject}}
        </p>
        <p><b>from</b> : {{da.startDate}} <b>to</b>:  {{da.endDate}}</p>
        </ion-card-content>
         </ion-card> 
    </div>

  </div>

<ion-card *ngIf="ok" (click)="openfile(adv)">

   <ion-card-content>
    <ion-card-title>
        {{adv.orgin}}
      </ion-card-title>
    <p>
        {{adv.subject}} 
    </p>
    <p><b>from</b> : {{adv.startDate}} <b>to</b>:  {{adv.endDate}}</p>
  </ion-card-content>
</ion-card>      

</div> 

尝试这样做。如果 2 个值不相等,则使用 <ng-template>。这是 stackblitz

上的示例
<div *ngFor="let adv of advlist | async; let i = index">

    <div *ngIf="adv.key == data[i].key; else notEqualTemplate" (click)="openfile(adv)">
        <ion-card>
            <ion-card-content>
                <ion-card-title>
                    {{adv.orgin}}
                </ion-card-title>
                <p>
                    {{adv.subject}}
                </p>
                <p><b>from</b> : {{adv.startDate}} <b>to</b>:  {{adv.endDate}}</p>
            </ion-card-content>
         </ion-card> 
    </div>

    <ng-template #notEqualTemplate>
        <ion-card style="background-color: #a7acaf">
            <ion-card-content>
                <ion-card-title>
                    {{da.orgin}}
                </ion-card-title>
                <p>
                   {{da.subject}}
                </p>
                <p><b>from</b> : {{da.startDate}} <b>to</b>:  {{da.endDate}}</p>
            </ion-card-content>
        </ion-card> 
    <ng-template>

</div>

我在 .ts 文件中使用 for 循环完成了

newData(){



 let dd = true;


  if(this.Newdata1.length > 0){
for(let i = 0;i < this.Newdata1.length ; i ++){
    for(let y = 0 ; y < this.data.length ; y++ ){
      if(this.Newdata1[i].key == this.data[y].key){
        alert('this.Newdata1 5' );
          this.Newdata.push({
            key: this.data[y].key,
            orgin: this.data[y].orgin,
            title: this.data[y].title,
            subject: this.data[y].subject,
            startDate: this.data[y].startDate,
            endDate: this.data[y].endDate,
            fileName: this.data[y].fileName,
            url: this.data[y].url
          });
           dd = false;
          break;
      }

    }
if(dd){
this.Newdata.push(
{
  key: this.Newdata1[i].key,
  orgin: this.Newdata1[i].orgin,
  title: this.Newdata1[i].title,
  subject: this.Newdata1[i].subject,
  startDate: this.Newdata1[i].startDate,
  endDate: this.Newdata1[i].endDate,
  fileName: this.Newdata1[i].fileName,
  url: this.Newdata1[i].url
});


}



 dd = true;
}

}else{
  for(let y = 0 ; y < this.data.length ; y++ ){

 this.Newdata.push({
    key: this.data[y].key,
    orgin: this.data[y].orgin,
    title: this.data[y].title,
    subject: this.data[y].subject,
    startDate: this.data[y].startDate,
    endDate: this.data[y].endDate,
    fileName: this.data[y].fileName,
    url: this.data[y].url
  });


}  
}

}