2017-05-26 72 views
2

我有一個嵌套的ng重複,並試圖使用過濾嵌套的ng重複以外的父ng-repeat的長度。 然而,結果總是0,如果它是一個單一的ng-repeat我可以得到結果。 我試過$ parent.filtered,但它得到錯誤的結果。下面angularjs嵌套ng重複的子長度以外的ng重複

例如:

<div> 
      Filtered Count :{{filtered.length}} 
      <div ng-repeat="group in groups"> 
       <div ng-repeat="letter in filtered = (group.letters | filter:filters.search) | orderBy:orderByAttribute:sortReverse "> 

       </div> 
      </div> 

     </div> 

THX,

+0

這並沒有多大意義,創造了小提琴此代碼。您有幾個組,每個組都有不同數量的過濾字母。應顯示哪些數字? –

+0

你應該已經完成​​了所有這些在你的控制器 –

+0

我需要的總過濾器 –

回答

3

filteredng-repeat指令範圍創建的,即分離物範圍。

該屬性是不從外部範圍訪問,它就像試圖從outerscope訪問ng-repeat$index財產。

你可以做什麼它的過濾數組綁定到一個對象的外部範圍(例如,在模板的控制器)

$scope.parent = {} 

然後過濾,家長指令追加內部,以便有一個鉤從外面過濾。

<div ng-repeat="letter in parent.filtered = (group.letters | filter:filters.search) | orderBy:orderByAttribute:sortReverse "> 

</div> 

然後是在父範圍

Filtered Count :{{parent.filtered.length}} 


DOC:angular ng-repeat

ngRepeat指令創建新的範圍

+0

工程偉大的BU而不是var父母,我不得不使用$ scope.parent = {}; Thx –

+0

事情是,它不會得到過濾的總數,它會得到父母ng內的索引總數 –

+0

@DanyNA我的意思是$ scope.parent,只是修復它:)。父對象是一個鉤子,它允許你看到過濾的內容,你應該能夠得到與內容一起的項目總數。 – Karim

0

通過seenimurugan給出的原始答案將是here和我已經更新了他的小提琴,使其動態。 工作example

<div class="section" ng-app="phonecatApp" ng-controller="PhoneListCtrl"> 
    <div class="slide"> 
     <div class="container"> 
      <h2 class="section-title">Selected Mobiles</h2> 
     </div> 
     <div class="container-fluid fix ver2"> 
      <div class="col-md-3 work-thumb" ng-repeat="phone in phones"> 
       {{setCount($index)}} 
       <a href="#">{{phone.name}}</a> 
      </div> 
     </div> 
    </div> 
    <p>Count: {{count}}</p> 
</div> 

@Contrller

var phonecatApp = angular.module('phonecatApp', []); 

phonecatApp.controller('PhoneListCtrl', function($scope) { 
    $scope.count = 0; 
    $scope.phones = [{ 
      'name': 'Nexus S', 
      'snippet': 'Fast just got faster with Nexus S.' 
     }, 
     { 
      'name': 'Motorola XOOM™ with Wi-Fi', 
      'snippet': 'The Next, Next Generation tablet.' 
     }, 
     { 
      'name': 'MOTOROLA XOOM™', 
      'snippet': 'The Next, Next Generation tablet.' 
     } 
    ]; 
}); 

我用從seenimurugan在原來的答案