2017-04-24 1 views
3

J'ai quelques filtres en utilisant ng-show et j'ai besoin d'afficher un div quand tous les autres div il est caché.Angulaire ng-si compter divs

Je crée une fonction pour compter les divs, c'est du travail mais quand tout div est caché, le div n'apparaît que dans l'interaction suivante, par exemple.

J'ai 3 divs, Plan 1, Plan 2 et Plan 3 ... quand je trouve pour Plan 4 toutes les divs cachées, mais seulement je mets plus d'un caractère ex: Plan 44 ... c'est que le div apparaît.

ng répétition

<div ng-repeat="plan in plans | filter:palavra_chave" > 
    <div class="plano" ng-if="plan.value <= filter_value && plan.download_mb >= filter_mb && plan.fee <= filter_adesao"> 
</div> 

div je suis en train show

<div ng-if="div() == 0" class="card-panel center "> 

fonction angulaire à compter divs

$scope.contar_div = function() 
{ 
    return conta_planos(); 
} 

c'est la fonction de compter divs

function conta_planos() 
    { 
     return $('.plano').length 
    } 

conta_planos est une fonction javascript vue

+0

sont vos éléments '.plano' dans le champ d'application angulaire? Les éléments '.plano' sont-ils affichés en utilisant' ng-repeat' ou quelque chose? – devqon

+0

Le titre et la description de votre question parlent de ng-if mais votre code utilise ng-show. [ng-if documentation] (https://docs.angularjs.org/api/ng/directive/ngIf) ngIf diffère de ngShow et ngHide en ce que ngIf supprime et recrée complètement l'élément dans le DOM plutôt que de changer sa visibilité via le Afficher la propriété css. –

+0

Je ne me suis pas très bien exprimé, voir modifier –

Répondre

1

i résolu changer la façon dont je filtrer des éléments

nouvelle ng-repeat

<div ng-repeat="plan in plans |filter:palavra_chave |filter: search as lista " > 

fonction de recherche angulaire

$scope.search = function(plan) { 
    if ((plan.value <= $scope.filter_value && plan.download_mb >= $scope.filter_mb && plan.fee <= $scope.filter_adesao)){ 
     return true; 
    } 
    return false; 
}; 

div t o montrer

<div ng-if="lista.length == 0" class="card-panel center "> 

grâce à l'aide ..