2016-09-19 3 views
0

Я знаю, что можно сортировать таблицу в угловой с двумя столбцами отдельно, то есть сначала сортировать по имени, а затем сортировать по семействам.порядок по сочетанию двух полей в угловом

https://plnkr.co/edit/bJIIlmGLyGWsxD5AQti0

var friends = [ 
    {name: 'a', family: 'z', age: 10}, 
    {name: 'z', family: 'b', age: 19}, 
    {name: 'c', family: 'z', age: 21}, 
    {name: 'z', family: 'd', age: 35}, 
    {name: 'z', family: 'e', age: 29} 
]; 

$scope.propertyName = 'age'; 
$scope.reverse = true; 
$scope.friends = orderBy(friends, $scope.propertyName, $scope.reverse); 

$scope.sortBy = function(propertyName) { 
    $scope.reverse = (propertyName !== null && $scope.propertyName === propertyName) 
     ? !$scope.reverse : false; 
    $scope.propertyName = propertyName; 
    $scope.friends = orderBy(friends, ['name','family'], $scope.reverse); 
}; 
}]); 
})(window.angular); 

Интересно, можно сортировать их, комбинируя два поля, например, порядка от «имени» и «семья» в алфавитном порядке, так что появляется, как «а, Ь, с , д, е "?

+1

Возможный дубликат [orderBy нескольких полей в угловом] (http://stackoverflow.com/questions/17037524/orderby-multiple-fields-in-angular) –

ответ

0
<div ng-repeat="student in students | orderBy:['name','family']"> 
    {{student.name}}-{{student.family}} 
</div> 
+0

в этом случае, он упорядочивает по имени, а затем и фамилию, это не оценка их базы на комбинацию этих двух полей. поэтому мне нравится добиваться «abcdef» not «acbd» – rawData

0

Вы можете просто передать Array на угловой orderBy фильтр, таким образом:

ng-repeat="friend in friends | orderBy:['name', 'family']" 

UPDATE: после изменения вопроса О.П., я прошу вас, чтобы лучше заявить запрашиваемую функцию заказа, так как это не очень понятно (мне) из вопроса ...

+0

Я ищу, чтобы выиграть заказ, объединив два поля, поэтому он будет отображаться ниже: {name: 'a', family: 'z', age: 10}, {name: 'z', family: 'b', age: 19}, {name: 'c', family: 'z', age: 21}, {name: 'z', family: 'd' , возраст: 35}, {name: 'z', family: 'e', ​​возраст: 29} – rawData

+0

Я не просил примера, но для определения ... :-) – MarcoS