Я работаю в приложении на фондовом рынке, используя ionic 3. Мне нужно сравнить показатели текущего и предыдущего значения объекта, а также обновить цвета фона. В настоящее время я написал код, как показано ниже, но иногда изменения цвета отражаются, и в большинстве случаев цвета не отражаются.
export class HomePage {
liverates: any = [];
oldliverates: any = [];
ionViewDidLoad() {
this.liverateservice.setcallback((data)=>{
this.oldliverates = Object.create(this.liverates);
let currentliverates: any = [];
this.commodities.forEach((value, key) => {
currentliverates.push({ 'com_id': com_id, 'com_name': com_name, 'buying_rate': buying_rate, 'selling_rate': selling_rate, 'delivery': deliverydays, 'is_coin': is_coin, 'comname_type': comname_type, 'comnametype_status': comnametype_status, 'deliverydays': deliverydays });
});
this.liverates = currentliverates;
});
}
}
А на мой взгляд
<div *ngFor="let liverate of liverates; let i = index">
<ion-row>
<ion-col col-10 class="ratecol div_userwelcome trade_products_name">{{liverate.com_name}}</ion-col>
</ion-row>
<ion-row>
<ion-col col-10 class="ratebox ratecol" [ngClass]="{'ratehigh' : (liverate.selling_rate > oldliverates[i].selling_rate), 'ratelow':(liverate.selling_rate < oldliverates[i].selling_rate), 'ratenormal': (liverate.selling_rate == oldliverates[i].selling_rate)}" (click)="gotoBookingPage(liverate.com_id, '1');">
<div class="rates">{{liverate.selling_rate}}</div>
<div class="sell_rtgs">{{liverate.comname_type}}</div>
</ion-col>
</ion-row>
</div>
Мой css,
.ratehigh{
background: #008000;
color: #FFFFFF;
}
.ratelow{
background: #FF0000;
color: #FFFFFF;
}
.ratenormal{
background:null;
color: #000000;
}
Когда я проверяю в консоли, он показывает другую скорость в liverate и oldliverates значения объекта, если значение обновляется, но не всегда сравнение скорости работает хорошо в моем html-файле. Не могли бы вы помочь мне решить эту проблему.