我有一個在AngularJS中製作的日曆應用程序,可以從三個不同的API端點獲取數據。我在使用ng-show
將數據端點的日期範圍與JavaScript生成的日期進行比較時遇到問題。Angularjs使用ng-show條件來比較兩種不同的日期格式
這是代碼:
<tr ng-repeat="date in futureDates">
<td> {$ date | date : 'yyyy-MM-dd' $} </td>
<td ng-repeat="users in calendar_users track by $index"
ng-show="users.fields.team_name == team.pk">
<span ng-repeat="activities in calendar_activities track by $index"
ng-show="activities.fields.user == users.fields.username &&
activities.fields.date == date | date 'yyyy-MM-dd'">
{$activities.fields.activity$}
{$activities.fields.date | date $}
</span>
</td>
</tr>
第一<td>
標籤列出了日期的30天,第二<td>
標籤使用<span>
內對值進行比較,看它們是否匹配起來。
對於此行的代碼:
<span ng-repeat="activities in calendar_activities track by $index"
ng-show="activities.fields.user == users.fields.username &&
activities.fields.date == date | date 'yyyy-MM-dd'">
在代碼的ng-show
部分,前&&
的首要條件正確評估,但&&
後病情沒有正確評估。
activities.fields.date
具有2017年3月9日的日期格式(作爲一個例子)
date | date 'yyyy-MM-dd'">
是通過使用Javascript自動生成日期的列表。日期是時間戳格式,因此我試圖使用代碼| date 'yyyy-MM-dd'
的以下部分來使其格式化爲與我比較的日期相同。
This is how the calendar looks like
這兩個條件被評估爲真並且所有結果打印出來。
如果下面的代碼行:
<span ng-repeat="activities in calendar_activities track by $index"
ng-show="activities.fields.user == users.fields.username &&
activities.fields.date == date | date 'yyyy-MM-dd'">`
獲取改爲:
<span ng-repeat="activities in calendar_activities track by $index"
ng-show="activities.fields.user == users.fields.username">`
(注:我已經刪除&& activities.fields.date == date | date 'yyyy-MM-dd'"
) 第一個條件成功地計算,只有日期沒有按」 t應該評估。
This is the end result.信息正確地綁定到日曆上的每個人,剩下的唯一問題是單元中的信息沒有與日曆上的日期進行比較,因此爲什麼預訂出現在該人的每個單元上該列。
希望我已經提供了足夠的信息來理解我正在嘗試做的事情。任何幫助或建議表示讚賞。
你爲什麼不只是做一個函數,它的日期,使他們以同樣的格式,並返回它們是否相等或不?而不是在HTML中造成如此混亂,試圖應用管道,而不是。 – yBrodsky