2015-01-15 5 views
0

У меня есть некоторые табличные данные в angularjs. Я сортируюсь со стандартными функциями сортировки. Я хочу знать, как получить строки таблицы, которые содержат определенное значение, чтобы отображаться первым.AngularJS Orderby

Item Category1 Category2 

Item поля всегда уникален, но есть несколько элементов, которые имеют одинаковое значение для Category1.

Есть ли способ, который я могу использовать пользовательскую функцию orderBy, чтобы получить все элементы, которые имеют значение Category1, чтобы отображаться первым?

+0

[Выражение фильтра orderBy] (https://docs.angularjs.org/api/ng/filter/orderBy) может быть функцией. –

ответ

0

Чтобы получить список всех записей с определенным значением первыми, просто проверить, что значение в вашей функции сортировки и возвращают меньшее число для элементов с этим значением чем другие предметы. например.

$scope.showValueFirst = function(item) { 
    return item.Category1 == 'matched value' ? 0 : 1; 
} 
1
ngRepeat="item in items | orderBy:sortByCategory" 

Вы могли бы написать функцию, как:

$scope.sortByCategory = function(item){ 
    return (item.category1 < item.category2); 
} 
+0

Не должно быть '$ scope.sortByCategory = function (item) ...'? –