Javascript 更新$scope而不单击并动态排序数组

Javascript 更新$scope而不单击并动态排序数组,javascript,angularjs,Javascript,Angularjs,我试图在通过WebSocket添加新记录时动态更新视图。默认情况下,具有最高ID的最新记录应位于底部,但它是随机添加的。我不知道为什么会这样 角度。模块“持久性”。控制器持久性控制器[ $scope, $http, $filter, $timeout, $mdDialog, $sce, 函数$scope、$http、$filter、$timeout、$mdDialog、$sce{ $scope.records=[]; $scope.sortById='id'; var socket2=io.c

我试图在通过WebSocket添加新记录时动态更新视图。默认情况下,具有最高ID的最新记录应位于底部,但它是随机添加的。我不知道为什么会这样

角度。模块“持久性”。控制器持久性控制器[ $scope, $http, $filter, $timeout, $mdDialog, $sce, 函数$scope、$http、$filter、$timeout、$mdDialog、$sce{ $scope.records=[]; $scope.sortById='id'; var socket2=io.connect'192.168.1.100:3001'; socket2.on'newInformation',函数数据{ $scope.records.push{ 标题:data.data.title, id:data.data.id, 名称:data.data.name }; $scope.$apply; }; } ]; {{record.id} {{record.title} {{record.name}
以正确的方式设置您的sortId。通过使用id:data.data.id而不是id:data.data.title。您的属性映射是错误的,仅此而已。确保排序属性与其他项的数据类型相同

$scope.records.push({
    id : data.data.id,
    title: data.data.title,
    name: data.data.name
});

看看这个。

您的变量名是错误的。更改记录对象中id为的标题位置。@BurakAkyıldız谢谢,我更改了它,但仍然无效。我更改了它,但仍然以错误的顺序添加。我加8,然后加12,再加9。它应该是8-9-12,但我得到的是12-8-9。@salp它按预期工作。我加了一把提琴。也许你的身份证有问题?确保您的Id与其他Id的数据类型相同。看看这里-如果你的新记录添加了一个字符串作为Id,排序错误就开始了。你是对的,问题在于它的类型。我把它当作字符串发送。谢谢。