2016-04-22 3 views
3

Я использую Angular JS и Google Places API для создания веб-приложения.AngularJS: OrderBy Descending (null entries)

У меня есть нг-повтор который в настоящее время по заказу "рейтинг" по убыванию (OrderBy: '- рейтинг'). Таким образом, он будет перечислять x мест из файла JSON API Google Places в порядке убывания, основанного на рейтинге.

ОДНАКО, предметы/места, не имеющие рейтинга, классифицируются как нулевые, и эти записи отображаются в верхней части моего фида ng-repeat. Они должны идти в низу фида, поскольку у них нет рейтинга?

Так пример того, как я хотел этого, чтобы посмотреть это:

<ng-repeat orderBy:'-rating'> 
    <place rating="5"/> 
    <place rating="4.2"/> 
    <place rating="2.8"/> 
    <place rating="null"/> 
    <place rating="null"/> 
</ng-repeat> 

Какой самый лучший способ идти об этом?

+0

проверить этот ответ http://stackoverflow.com/questions/18604374/angularjs-orderby-with-empty-field/30028814 – DrinkBird

ответ

3

Сортировка: null или undefined Значение с использованием orderBy фильтра. использование [] описание товара orderBy:[ '!rating', '-rating', ].

Это покажет null или undefined значение внизу.

как:

<li ng-repeat="option in options | orderBy:[ '!rating', '-rating', ]">{{option.name}}</li> 
+0

Спасибо, это сработало лакомство. Не знал, что вы можете использовать массивы в фильтре orderBy. Я рад, что мне не пришлось тратить время на создание настраиваемого фильтра. –

+0

Ну, он работает с загрузкой страницы, привязывая ее к переменной с областью. Но, похоже, это не работает в моем окне выбора. Мой код так: Вид: <нг-повтора = "OrderBy: Events.order" /> Контроллер: vm.order = ['! rating', '- rating']; –

+0

Вы могли бы уточнить, что вам нужно, обновив свой ответ? –