2016-02-18 53 views
1

This is my edited plunker from AngularJS' ordering example.排序是好的,直到我定期更新联系人列表的代码添加一个新人。新人将不会在列表中重新排序,而是始终将用户添加到底部。当需要添加新用户时,我需要列表重新排序。有没有办法做到这一点?AngularJS:插入新项目后重新排列列表

实际上,这就是我用来创建新的人,从角排序机制,其余的人留下的一样:

$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); 
+1

看看使用$ q和承诺。 – lintmouse

+1

也有棱角有一个特殊的'$超时'提供商 –

回答

3

您的预定功能,做一些古怪与翻转排序顺序,但总体上都你需要做的是看收集:

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

掩盖我的脸,尽管我把'ng-repeat'中的列表传递给'orderBy'。现在行为是有意义的,因为列表只是在该函数调用中重新排序。 – jakebird451