在angularJS中排序数据

sort data in angularJS

本文关键字:数据 排序 angularJS      更新时间:2023-09-26

我是AngularJS新手…我在输出数据上创建了一个过滤器。接下来,我需要根据下拉选择项对这些数组数据进行排序。我不明白。过滤器处理在第三个指令中完成。如有任何帮助,不胜感激。

 $scope.options=[
              {label: 'Name', value:1,submenu:null},
              {label: 'Age', value:2,submenu:null},
              {label: 'Country', value:3,submenu:[
                      {label:'India',value:1},
                      {label:'China',value:2},
                      {label:'Singapore',value:3},
                      {label:'London',value:4}
                  ]}
          ];
 <select ng-model="model1" ng-options="opt as opt.label for opt in options">
        </select>

这里是活塞http://plnkr.co/edit/BFEJQo8Zp2eukdgP9BKM?p=preview

尝试在ng-repeat中使用自定义排序。

演示工作

<div ng-repeat="detail in details | orderBy : sortingOrder : reverse" ng-show="showResults">
    {{detail.Fname | uppercase}}
    {{detail.Lname}}
    {{detail.age}}
    {{detail.sex}}
    {{detail.place}}
</div>
脚本

  $scope.search = function() {
    $scope.reverse = '';
    $scope.showResults = true;
    if ($scope.model1.label === 'Age') {
      $scope.sortingOrder = 'age';
    } else if ($scope.model1.label === 'Name') {
      $scope.sortingOrder = 'Fname';
    } else if ($scope.model1.label === 'Country') {
      $scope.sortingOrder = 'place';
    }
     else if ($scope.model1.label === 'Gender') {
       console.log($scope.user.sex1);
     if($scope.user.sex1 === 'male')
     {
       $scope.reverse = true;
     }
     else if($scope.user.sex1 === 'female')
     {
      $scope.reverse = false;
     }
      $scope.sortingOrder = 'sex';
    }
  };