我正在做一個基於鍵的json對象的ng-repeat。 現在我可以使用ng-repeat =「item in array | limitTo:5」來限制數組對象的重複項的數量。ng-repeat limitTo可用於在json而不是數組上重複嗎?
但是當我嘗試ng-repeat =「key in json | limitTo:5」時,它沒有成功限制重複次數,我應該怎麼做?
我正在做一個基於鍵的json對象的ng-repeat。 現在我可以使用ng-repeat =「item in array | limitTo:5」來限制數組對象的重複項的數量。ng-repeat limitTo可用於在json而不是數組上重複嗎?
但是當我嘗試ng-repeat =「key in json | limitTo:5」時,它沒有成功限制重複次數,我應該怎麼做?
創建自定義過濾器來處理一個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;
}
};
});
正如我們從文檔看到:
https://docs.angularjs.org/api/ng/filter/limitTo
輸入被限制爲:源陣列,字符串或數字是有限的。
您可以構建自己的過濾器來製作此限制。
欲瞭解更多信息看:AngularJS limitTo filter for ngRepeat on an object (used like a dictionary)
除此之外,什麼是使用對象的limitTo過濾器時,你無法控制的順序的原因嗎?在這裏數組會更好。
我收到來自後端java應用JSON對象並在其上被NG-重複原樣。因此,爲了限制顯示項目的數量將其轉換爲數組將會增加開銷。 – jackOfAll
這是一個開銷,但與等待ajax的時間相比,它是不可識別的。當您將其更改爲數組時,您還可以控制結果的順序。所以客戶不會問你爲什麼每次都會得到相同的數據不同的結果 –