0

我有「md-grid-list」在網格中顯示卡片。我使用「ngFor」循環我的數據數組。如何使用「ngIf」將數組中的每個datetime元素與給定的DateTime進行比較?如果條件通過成功,卡的顏色設置爲綠色,如果條件不滿足,卡的顏色設置爲不同的顏色。如何使用ngIf在角度2中比較日期並相應地更新卡背景?

<md-grid-list cols="4" rowHeight="250px" gutterSize="20px"> 
    <md-grid-tile *ngFor="let data of mydata" > 
     <div *ngIf="(data.myDatetime | date:'HH:mm:ss, MMMM dd') < (myCurrentDateTime |date:'HH:mm:ss, MMMM dd')"> 

     <md-card [style.background]="'red'" [style.minHeight]="'100%'"> 
    <md-card-title></md-card-title> 
    <md-card-title></md-card-title> 
    <md-card-content> 
    <h2> 
    </h2> 
    </md-card-content> 
    </md-card> 
     </div> 
    </md-grid-tile> 
</md-grid-list> 
+0

請將您的工作 –

+0

的小提琴@ AmadouBeye我沒有使用小提琴。我想知道如何在ngFor Angular 2中使用ngIf else。我想根據條件動態更新卡。 – Mythri

+0

@AmadouBeye其實,你應該使用plunker,而不是jsfiddle – Edric

回答

0

JavaScript使用對象來存儲日期值。當你想比較兩個日期是否相等時,不要這樣做date1 === date2。這隻會告訴你兩個變量是否引用同一個對象。

要檢查兩個日期是否相等,請使用日期對象的getTime()方法。像這樣:

date1.getTime() == date2.getTime() 

要小心,因爲秒的任何差異將無法匹配日期。

你的情況,這將是:

ngIf="data.myDatetime.getTime() < myCurrentDateTime.getTime()" 

如果日期格式在Unix的時間戳:

ngIf="data.myDatetime < myCurrentDateTime" 

希望它可以幫助

+0

日期格式是Unix時間戳。例如,這些是兩個日期1494315270412和1494258011370.我如何比較這些日期? – Mythri

+0

我編輯了我的答案 –

+0

謝謝你會試試.. – Mythri