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
});
}
}
}
我有两个循环,一个来自 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
});
}
}
}