私は一連のテーブル行を生成するng-repeatを持っています。 1つの列には「タスクステータス」というタイトルが付けられており、ステータスが「完了」と表示されている場合は、ジョブが完了したので表示されません。AngularJS ng-repeatの隠しテーブル行を無視してインクリメントを保持する方法はありますか?
私はng-show = values!= 0を使用しました。これは最初に増分を追加してタスクに番号を付けるまで機能しました。
私が見つけたのは、data = "done"はDOMから完全に削除されず、リスト内でまだ増分を中断していたということでした。だから、行2及び3は、 "完了" と等しくなるデータであり、
:下の画像を参照してください。私はそれらを無視するために何ができますか?ここで
が私のマークアップです:
<table class="backlog table table-bordered table-striped" width="100%" border="0" cellpadding="0" cellspacing="0" summary="Our Jira Backlog">
<tbody>
<tr>
<th>Priority</th>
<th>Task Priority Score</th>
<th>Task Summary</th>
<th>Due date</th>
<th>Task Status</th>
</tr>
<tr ng-repeat="issue in issues | orderBy: '-fields.customfield_12401'" ng-if="issue.fields.status.statusCategory.name != 'Done'">
<td>{{ $index + 1 }}</td>
<td>{{ issue.fields.customfield_12401 }}</td>
<td>{{ issue.fields.summary }}</td>
<td>{{ issue.fields.customfield_13700 }}</td>
<td>{{ issue.fields.status.statusCategory.name }}</td>
</tr>
</tbody>
</table>
だから、「issue.fields.status.statusCategory.name」から来ているものは1,2,3、優先順位(第一列)が入るので、無視する必要があります、4,5等を表示し、タスクステータスカラムを表示しません。
これは、テンプレートの問題ではありません。問題の値を設定するときは、コントローラまたはディレクティブで優先度を計算する必要があります。テンプレートでビジネスロジックを行うのは避けてください。 – cgTag
私はあなたが何をしているのか分かりません。あなたは特定の行をスキップしますが、スキップされた行に対して '$ index'をインクリメントしますか? –
テンプレートに渡す前にデータをフィルタリングします。 –