AngularJS:插入新项目后对列表重新排序

AngularJS: reorder list after insert a new item

本文关键字:新排序 排序 列表 插入 新项目 AngularJS      更新时间:2023-09-26

这是我从AngularJS的排序示例中编辑的plunker。排序很好,直到我用于定期更新联系人列表的代码添加了一个新人。新用户不会在列表中重新排序,而是始终将用户添加到底部。我需要在添加新用户时重新排序列表。有没有办法做到这一点?

这本质上是我用来创建新人的方法,来自 angular 的其余排序机制保持不变:

$scope.run_it = function() {
  setTimeout($scope.run_it, 3000);
  $scope.friends.push({name: 'New', phone: '000-0000', age: Math.floor((Math.random() * 100) + 1)});
  $scope.$applyAsync();
};
setTimeout($scope.run_it, 3000);

你的排序函数在翻转排序顺序时做了一些奇怪的事情,但总的来说,你需要做的就是观察集合:

$scope.$watchCollection("friends", function () {
  $scope.order('age');
});