Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.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 有条件地设置orderBy Angularjs_Javascript_Angularjs_Angularjs Orderby - Fatal编程技术网

Javascript 有条件地设置orderBy Angularjs

Javascript 有条件地设置orderBy Angularjs,javascript,angularjs,angularjs-orderby,Javascript,Angularjs,Angularjs Orderby,我有一个用户数组,我想在第一次加载时按姓氏对我的ng repeat进行排序。添加新用户后,请按日期添加ng repeat ORDER by,然后添加姓氏。基本上,我希望最新的用户被推到ng repeat的顶端 <th ng-click="menuFilter('lastName', 1);"> <div ng-class='{"menuSort":sortColumn==1}'>Name <span ng-show="share.orderByField ==

我有一个用户数组,我想在第一次加载时按姓氏对我的ng repeat进行排序。添加新用户后,请按日期添加ng repeat ORDER by,然后添加姓氏。基本上,我希望最新的用户被推到ng repeat的顶端

<th ng-click="menuFilter('lastName', 1);">
  <div ng-class='{"menuSort":sortColumn==1}'>Name <span ng-show="share.orderByField == 'lastName'">
  </div>
</th>

 <tr ng-repeat="user in users | orderBy:orderByField:reverseSort"></tr>
基本上,这段代码没有做任何事情。我想我在HTML中遗漏了一个步骤


谢谢

我认为用纯javascript对数组进行排序,然后使用不带orderBy属性的ng repeat,这是最容易做到的

HTML:

JSFiddle:


此答案可能有助于对数组进行排序:

尝试使用“取消移动”而不是“推送”将项目添加到数组中。js中的unshift允许我们将一个项目插入到数组的顶部。

如何/在哪里更新
isRefreshing
更新?
_this.sortColumn = 1;
_this.orderByField = 'lastName';
_this.reverseSort = false;

 _this.menuFilter = function(section, column) {
      _this.orderByField = section;
      _this.reverseSort = !_this.reverseSort;
      _this.sortColumn = column;
};

//my attempt to reset the order by created at date
if( _this.isRefreshing ) { 
        _this.orderByField = ['createdAt', 'lastName'];
}
<div ng-repeat="user in users">{{user}}</div>

<input type="text" ng-model="name"></input>
<button ng-click="addName()">Add name</button>
$scope.users = ["Rusty", "Shackleford", "Dale", "Gribble"];
$scope.users.sort();

$scope.addName = function() {
   $scope.users.unshift($scope.name);
}