Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 AngularJS | OrderBy不是数组_Javascript_Angularjs_Scope_Angularjs Orderby - Fatal编程技术网

Javascript AngularJS | OrderBy不是数组

Javascript AngularJS | OrderBy不是数组,javascript,angularjs,scope,angularjs-orderby,Javascript,Angularjs,Scope,Angularjs Orderby,我想向表列添加排序功能,但出现以下错误: [orderBy:notarray] Expected array but received: 0 而且,排序根本不起作用。当上下箭头改变位置时,调试器似乎得到了正确的信息 我的HTML: <th class="text-center"><a style="color:black" ng-click="sortColumn('severity')"> Level <span ng-show="sor

我想向表列添加排序功能,但出现以下错误:

[orderBy:notarray] Expected array but received: 0
而且,排序根本不起作用。当上下箭头改变位置时,调试器似乎得到了正确的信息

我的HTML:

<th class="text-center"><a style="color:black"
    ng-click="sortColumn('severity')">
    Level
    <span ng-show="sortTable('severity')" class="fa fa-caret-down"></span>
    <span ng-show="sortTable('severity', false)" class="fa fa-caret-up"> 
    </span>
    </a>
</th>
<th><a style="color:black" ng-click="sortColumn('getTimeAgo')">
    Timestamp
    <span ng-show="sortTable('getTimeAgo')" class="fa fa-caret-down"> 
    </span>
    <span ng-show="sortTable('getTimeAgo', false)" class="fa fa-caret-up"> 
    </span>
    </a>
</th>

<tbody ng-repeat="t in Ctrl.notifications | filter : search | 
         filter : Ctrl.customFilter track by $index | 
         orderBy:sortingFn:sortReverse"
         ng-style="$index != 0 ? 'border-top:0px' : ''">
  $scope.sortColumn = (sortBy) => {
    $scope.sortReverse = !$scope.sortReverse;
    $scope.sortBy = sortBy;
  };

  $scope.sortTable = (sortBy, sortReverse = true) =>
    $scope.sortBy === sortBy && $scope.sortReverse === sortReverse;

  $scope.sortAlerts = (alert, sortBy) => {
    switch (sortBy) {
      case 'severity':
        return alert.severity;
      case 'getTimeAgo':
        return alert.getTimeAgo;
      default:
        return alert[sortBy]
    }
  };

  $scope.sortingFn = (alert) => {
    return sortAlerts(alert, $scope.sortBy)
  };

我只是简单地更改了以下内容:

  $scope.sortingFn = (alert) => {
    return sortAlerts(alert, $scope.sortBy)
  };

  const sortingFn = (alert) => {
    return sortAlerts(alert, $scope.sortBy)
  };

现在它起作用了。没有错误,没有。。。谢谢大家的帮助

您必须更改tr上的重复,因此,orderby对tr的影响

<tr ng-repeat="t in Ctrl.notifications | filter : search | 
         filter : Ctrl.customFilter track by $index | 
         orderBy:sortingFn:sortReverse">
    <td>{{t.xxx}}</td>
    <td>{{t.yyyy}}</td>
</tr>

{{t.xxx}
{{t.yyyy}

尝试编写
按$index跟踪
在所有过滤器完成后检查数组是否包含元素它不工作。我发现:
错误:[$parse:syntax]语法错误:标记“track”是表达式[$index | orderBy:sortingFn:sortReverse track by$index]第40列的意外标记,从[track by$index]开始。似乎未定义
[sortBy]
。有什么建议吗?