我有以下代码监听socket.io
事件,如果数组中已不存在项目,则将项目添加到范围数组中:
socketIOService.on('news arrived', function(data){
var newlyArrived = _.filter(data, function (item){
if(_.findWhere($scope.listOfNews, { hash: item.hash})){
return false;
}
return true;
});
$scope.listOfNews = _.uniq($scope.listOfNews.concat(newlyArrived), 'hash');
$scope.$digest();
});
我在里面有一个ng-repeat
,我想对我的物品进行排序。
ng-repeat="item in listOfNews | orderBy:'title':true as results track by $index"
问题是dom上的项目是 partialy 排序。我想这可能与socket.io
以及某些项目被推送到$scope.listofNews
的时间有关。我对吗?知道为什么会这样,我该如何解决?
更新以明确事项:
如果按标题,日期或任何归因排序,则无关紧要。结果总是部分且未完全分类。
如果我使用$apply()
或$digest
或$evalAsync()