2014-08-30 39 views
2

[]中顯示圖像列表。然後iam使用標籤名稱對其進行過濾。 所以這裏是我的過濾器。錯誤:已達到10次摘要()迭代。中止! Watchers在最後5次迭代中解僱了我的程序iam中的過濾器

app.filter('myFilter', function() 
    { 

var filtered = []; 
return (function(items, text) 
{ 


    if (text === undefined) 
    { 
     return items; 
    } 
    else 
    { 
     angular.forEach(items, function(value, key) 
     { 
      var sample = value.tag; 
      angular.forEach(sample, function(value1, key) 
      { 

        if (text === value1) 
       { 
        filtered.push(value); 
       } 

      }); 

     }); 

    } 
    return filtered; 
}) 
    }); 

和HTML是:

  <ul> 
     <li ng-repeat="x in outputphotos| myFilter:text"> 
      <a href="#displayimage/{{x.imageId}}"><img ng-src="{{x.url}}"></a> 

     </li> 
    </ul> 

,並在輸出將一次篩選。但如果第二次輸入標籤,則不會過濾。 並在控制檯中顯示錯誤 10 $ digest()迭代達到。中止! 觀察者在最近的5次迭代中被解僱:[] 不允許在中繼器中複製。 Repeater:x在outputphotos |中myFilter:text key:object:004

我不知道如何改變這個錯誤。

回答

1

讓我來猜猜,移動return語句裏面的過濾數組聲明var filtered = [];,像

return (function(items, text) 
{ 
    var filtered = []; 

我相信你沒有清除舊的過濾器,並嘗試更新濾波器陣列被觸發手錶再次。你重複的是綁定到filtered數組。

+0

是的,現在我得到了答案謝謝youuuu – Viveka 2014-08-30 06:25:24

0

在Angular.js嘗試這種情況:

功能$ RootScopeProvider(){ VAR TTL = 10; //增加TTL的值,默認值是10

相關問題