2017-04-24 23 views
3

我有一些使用ng-show的過濾器,我需要顯示一個div,當其他所有div被隱藏時。Angular ng-if div div

我創建了一個函數來計數divs,它是工作的,但是當所有的div都隱藏起來的時候div只會在下一個interation中顯示,例如。

我有3格,計劃1,計劃2和計劃3 ...當我找到計劃4所有div隱藏,但只有我把更多的一個字符前:計劃44 ...是div出現。

NG重複

<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我試圖展示

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

角函數計算的div

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

這是計數的div功能

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

conta_planos是鑑於JavaScript函數

+0

是你的'在角的範圍.plano'元素?用'ng-repeat'或者其他什麼來顯示'.plano'元素? – devqon

+0

您的問題標題和說明會討論ng-if,但您的代碼使用ng-show。 [ng-if文檔](https://docs.angularjs.org/api/ng/directive/ngIf)ngIf不同於ngShow和ngHide,因爲它完全刪除並重新創建了DOM中的元素,而不是通過顯示CSS屬性。 –

+0

我沒有很好地表達自己,請參閱編輯 –

回答

1

我解決改變如何過濾元件

新納克重複

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

角搜索功能

$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顯示

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

感謝您的幫助..