2015-05-04 64 views

回答

1

創建自定義過濾器來處理一個JSON對象:

app.filter('limitTo', function() { 
    return function (jsonItems, limit) { 
     var lengthJson = Object.keys(jsonItems).length; 
     if (lengthJson<=limit) 
      return jsonItems; 
     else 
     { 
      var slicedJsonItems = {}; 

      //your slicing algorithm here to limit the length 

      return slicedJsonItems; 
     } 
    }; 
}); 
1

正如我們從文檔看到:

https://docs.angularjs.org/api/ng/filter/limitTo

輸入被限制爲:源陣列,字符串或數字是有限的。

您可以構建自己的過濾器來製作此限制。

欲瞭解更多信息看:AngularJS limitTo filter for ngRepeat on an object (used like a dictionary)

除此之外,什麼是使用對象的limitTo過濾器時,你無法控制的順序的原因嗎?在這裏數組會更好。

+0

我收到來自後端java應用JSON對象並在其上被NG-重複原樣。因此,爲了限制顯示項目的數量將其轉換爲數組將會增加開銷。 – jackOfAll

+0

這是一個開銷,但與等待ajax的時間相比,它是不可識別的。當您將其更改爲數組時,您還可以控制結果的順序。所以客戶不會問你爲什麼每次都會得到相同的數據不同的結果 –

相關問題