3つの異なるAPIエンドポイントからデータを取得するAngularJSで作成されたカレンダーアプリケーションがあります。 ng-show
を使用してデータエンドポイントの日付範囲とJavascriptで生成された日付を比較する際に問題があります。ng-show条件を使用して2つの異なる日付形式を比較するAngularjs
これはコードです:
<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>
内部を使用しています。このコード行のために
:コードのng-show
一部で
<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.date
は
date | date 'yyyy-MM-dd'">
が自動的にジャバスクリプトによって生成された日付のリストである(例として)2017年3月9日の日付フォーマットを有します。日付はタイムスタンプ形式になっていますので、なぜ私はコード| date 'yyyy-MM-dd'
の次の部分を使って、それを比較している同じ日付になるようにしようとしました。
This is how the calendar looks like
両方の条件が真と評価され、すべての結果がプリントアウトされます。 (注:私は&& 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">`
:
<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'">`
に変更されます:次のコード行が場合
が 最初の条件が正常に評価、日付だけが」doesnのそれはすべきだと評価する。
This is the end result.情報はカレンダーの各担当者に正しく関連付けられていますが、残っている唯一の問題は、セル内の情報がカレンダーの日付と比較されていないことです。列。
希望私は何をしようとしているのかを理解するのに十分な情報を提供しました。どんな助けや提案も感謝しています。
日付を取り、同じ形式にして、等しいかどうかを返す関数を作ってみませんか? htmlでそのような混乱を作る代わりに、パイプを適用しようとするものではありません。 – yBrodsky