J'ai une ng-repeat qui génère une série de lignes de table. Une colonne est intitulée "état de la tâche" et si l'état affiche "terminé", je ne vois aucune raison de l'afficher, car le travail a été terminé.AngularJS Comment puis-je ignorer les lignes de table cachées dans ng-repeat mais conserver l'incrément?
J'ai utilisé ng-show = valeurs! = 0; cela a fonctionné initialement jusqu'à ce que j'aie ajouté un incrément pour numéroter les tâches. Ce que j'ai trouvé, c'est que les données = "done" n'étaient pas totalement retirées du DOM et continuaient à reger dans la liste, perturbant l'incrément. Voir image ci-dessous:
Ainsi, les lignes 2 et 3 sont des données qui sont égales "fait". Que puis-je faire pour les ignorer?
Voici mon code:
<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>
Donc, tout ce qui vient de « issue.fields.status.statusCategory.name » doit être ignoré si la priorité (première colonne) va, 1,2,3 , 4,5 etc et ne pas afficher "fait" la colonne Etat de la tâche.
Ce n'est pas un problème de modèle. Vous devez calculer la priorité vous-même dans un contrôleur ou une directive lorsque vous définissez la valeur pour les problèmes. Évitez de faire de la logique métier dans les modèles. – cgTag
Je ne comprends pas ce que vous cherchez. Souhaitez-vous ignorer certaines lignes tout en incrémentant '$ index' pour les lignes ignorées? –
Filtrez les données avant de les transmettre au modèle. –