Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据表中的标题对表中的单列数据进行排序_Javascript_Jquery_Angularjs_Arrays_Sorting - Fatal编程技术网

Javascript 根据表中的标题对表中的单列数据进行排序

Javascript 根据表中的标题对表中的单列数据进行排序,javascript,jquery,angularjs,arrays,sorting,Javascript,Jquery,Angularjs,Arrays,Sorting,我正在做的是在表中对单个或多个列执行排序操作。假设我们有一张这样的桌子 单击标题1时,仅应对数据1和数据2进行排序。单击标题2时,需要对数据3和数据4进行排序 我们已经在Angular中实现了表的简单排序,但不知道如何在一列中使用两组数据实现此排序 即使尝试了单独的表,因为order by in Angular是基于数组中的键的,当单击标题1时,这两个(数据1、2、3和4)都会得到更新 ng repeat用于形成表格 有人能给我指出正确的方向吗(在角度1.x上) Sample Fiddle问题

我正在做的是在表中对单个或多个列执行排序操作。假设我们有一张这样的桌子

单击标题1时,仅应对数据1和数据2进行排序。单击标题2时,需要对数据3和数据4进行排序

我们已经在Angular中实现了表的简单排序,但不知道如何在一列中使用两组数据实现此排序

即使尝试了单独的表,因为order by in Angular是基于数组中的键的,当单击标题1时,这两个(数据1、2、3和4)都会得到更新

ng repeat用于形成表格

有人能给我指出正确的方向吗(在角度1.x上)


Sample Fiddle

问题在于您使用的是同一个变量来处理相反的结果

<div ng-controller="MyCtrl">
  <table class="table">
    <tr class="heading">
      <td ng-click="reverse1=!reverse1;predicate1='id'">id</td>
    </tr>
    <tr ng-repeat="user in users | orderBy:predicate1:reverse1">
      <td>{{user.id}}</td>
    </tr>
    <tr class="heading">
      <td ng-click="reverse2=!reverse2;predicate2='id'">id</td>
    </tr>
    <tr ng-repeat="user in users | orderBy:predicate2:reverse2">
      <td>{{user.id}}</td>
    </tr>
  </table>
</div>

身份证件
{{user.id}
身份证件
{{user.id}

您可以检查这个工作fiddle==>

为什么不为每个
创建一个单独的作用域变量,其中
中有
id
,如下所示

<div ng-controller="MyCtrl">
  <table class="table">
      <tr><td ng-click="reverse1=!reverse1;predicate1='id'">id</td></tr>
      <tr ng-repeat="user in users | orderBy:predicate1:reverse1">
          <td>{{user.id}}</td>
      </tr>
      <tr><td ng-click="reverse2=!reverse2;predicate2='id'">id</td></tr>
      <tr ng-repeat="user in users | orderBy:predicate2:reverse2">
          <td>{{user.id}}</td>
      </tr>
    </table>
</div>
这应该适用于您的情况,因为我没有看到动态生成带有
id
。它用
id
硬编码为两行。id
后面的另一个
是使用
ng repeat
动态生成的,因此这应该是可以的


为了简单起见,这里是到

的工作链接,如果你发布HTML,那么它将更容易帮助^^^以及javascript。提供一些代码来了解你的代码的实际状态。添加了fiddle@TonySamperi和其他名称。我来看看这是一个巧合,我们都有相同的变量名。我没有抄你的。我们在同一时间发帖。
var myApp = angular.module('myApp',[]);

//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});

function MyCtrl($scope) {
    $scope.users = [
        {id:1},
        {id:2}

    ]
}