AngularJS limitTo по последним 2 записям

Может ли комбинация AngularJS filter, order или limitTo для ng-repeat имитирует _.last в UnderscoreJS?


person phteven    schedule 13.08.2012    source источник


Ответы (2)


Если я правильно понимаю ваш вопрос, я думаю, что эта скрипка подойдет.

Для этих данных:

$scope.items = [{sort: 1, name: 'First'}, 
                {sort: 2, name: 'Second'}, 
                {sort: 3, name: 'Third'}, 
                {sort: 4, name:'Last'}];

Если вы не хотите на самом деле сортировать массив и просто берете последние два элемента массива как есть (например, последнее подчеркивание), вы можете попробовать отрицательный предел (это покажет третий, последний):

<div ng-repeat="item in items | limitTo:-2">

Также обратите внимание, что вы можете связать фильтры вместе, как в этом примере, сортируя данные в обратном порядке и беря 2 элемента (это покажет последний, третий):

<div ng-repeat="item in items | orderBy:'sort':true | limitTo:2">
person Gloopy    schedule 13.08.2012

Ответ Gloopy правильный, но просто примечание... Если вы хотите использовать Underscore, вы можете:

myApp.run(function($rootScope) {
  $rootScope._ = _;
});

<div ng-repeat="item in _.last(items)">
person Andrew Joslin    schedule 14.08.2012