2017-03-31 1 views
0

J'essaie d'utiliser ng-if pour afficher un bouton basé sur les filtres présents sur l'écran. J'utilise md-chips pour montrer les filtres dans les catégories.

HTML:

<div ng-repeat="filter in sc.filters track by $index"> 
    <md-chips ng-model="filter.value" ng-if="sc.isArray(filter.value)" md-on-remove="sc.filter()"></md-chips> 
</div> 
<button ng-if="$first" ng-click="sc.newSearch()">clear filters</button> 

je suivre l'index et essayer d'ajouter le bouton si le premier élément était présent. Il ne montre pas le bouton du tout. Toute aide appréciée.

Répondre

1

$first doit être utilisé dans une instruction ng-repeat. Dans ce cas, vous ne voulez pas utiliser $first.

Si vous voulez ajouter le bouton si le premier élément est présent, pourquoi ne pas simplement faire quelque chose comme ceci:

<button ng-if="sc.filters.length" ng-click="sc.newSearch()">clear filters</button> 
+1

Il ne fonctionnait pas au début, je devais ruser un peu dans mon logique pour le faire fonctionner! – nash63

+0

Pourriez-vous expliquer ce que vous avez dû peaufiner? –

+0

Mes sc.filters était un objet complexe. Je devais donc obtenir sa longueur d'éléments enfant pour obtenir la sortie dont j'avais besoin. – nash63