ฉันเขียนชิ้นส่วนที่มีประโยชน์นี้เพื่อจัดเรียงตามหลายคอลัมน์ / คุณสมบัติของวัตถุ ด้วยการคลิกแต่ละคอลัมน์ที่ต่อเนื่องกันรหัสจะจัดเก็บคอลัมน์สุดท้ายที่คลิกและเพิ่มลงในรายการที่เพิ่มขึ้นของชื่อสตริงคอลัมน์ที่ถูกคลิกวางไว้ในอาร์เรย์ที่ชื่อว่า sortArray ฟิลเตอร์ Angular "orderBy" ในตัวจะอ่านรายการ sortArray และเรียงลำดับคอลัมน์ตามลำดับชื่อคอลัมน์ที่จัดเก็บไว้ที่นั่น ดังนั้นชื่อคอลัมน์ที่ได้รับการคลิกครั้งสุดท้ายจะกลายเป็นตัวกรองที่ได้รับคำสั่งหลักก่อนหน้านี้ได้คลิกที่ลำดับความสำคัญก่อนหน้านี้ ฯลฯ ลำดับที่กลับกันจะมีผลต่อลำดับของคอลัมน์ทั้งหมดในครั้งเดียวและสลับเป็นเรียงลำดับ
<script>
app.controller('myCtrl', function ($scope) {
$scope.sortArray = ['name'];
$scope.sortReverse1 = false;
$scope.searchProperty1 = '';
$scope.addSort = function (x) {
if ($scope.sortArray.indexOf(x) === -1) {
$scope.sortArray.splice(0,0,x);//add to front
}
else {
$scope.sortArray.splice($scope.sortArray.indexOf(x), 1, x);//remove
$scope.sortArray.splice(0, 0, x);//add to front again
}
};
$scope.sushi = [
{ name: 'Cali Roll', fish: 'Crab', tastiness: 2 },
{ name: 'Philly', fish: 'Tuna', tastiness: 2 },
{ name: 'Tiger', fish: 'Eel', tastiness: 7 },
{ name: 'Rainbow', fish: 'Variety', tastiness: 6 },
{ name: 'Salmon', fish: 'Misc', tastiness: 2 }
];
});
</script>
<table style="border: 2px solid #000;">
<thead>
<tr>
<td><a href="#" ng-click="addSort('name');sortReverse1=!sortReverse1">NAME<span ng-show="sortReverse1==false">▼</span><span ng-show="sortReverse1==true">▲</span></a></td>
<td><a href="#" ng-click="addSort('fish');sortReverse1=!sortReverse1">FISH<span ng-show="sortReverse1==false">▼</span><span ng-show="sortReverse1==true">▲</span></a></td>
<td><a href="#" ng-click="addSort('tastiness');sortReverse1=!sortReverse1">TASTINESS<span ng-show="sortReverse1==false">▼</span><span ng-show="sortReverse1==true">▲</span></a></td>
</tr>
</thead>
<tbody>
<tr ng-repeat="s in sushi | orderBy:sortArray:sortReverse1 | filter:searchProperty1">
<td>{{ s.name }}</td>
<td>{{ s.fish }}</td>
<td>{{ s.tastiness }}</td>
</tr>
</tbody>
</table>
orderBy:['-group','sub']
สำหรับการเรียงลำดับโดยเรียงgroup
กลับกัน