gpt4 book ai didi

Angularjs:为什么 ng-repeat orderBy:数据属性更改时重新排序不正确

转载 作者:行者123 更新时间:2023-12-03 06:52:57 25 4
gpt4 key购买 nike

我使用 orderBy 按 is_important 属性和 desc 对 ng-repeat 中的数据进行排序,如下所示:

<li ng-repeat="data in datas | orderBy:'-is_important'">{{data.id}}</li>

$scope.datas = [{"id":"1","is_important":"0"},
{"id":"2","is_important":"0"},
{"id":"3","is_important":"0"},
{"id":"4","is_important":"1"},
{"id":"5","is_important":"0"},
{"id":"6","is_important":"0"}];

一开始,屏幕上显示的顺序是正确的

4
1
2
3
5
6

但是当我更改 is_important 属性时

$scope.datas[3].is_important = 0;
$scope.datas[5].is_important = 1;

ng-repeat 显示的结果:

1
2
3
5
6
4

与我预期的答案不同:

6
1
2
3
4
5
为什么?

这是我的代码: http://jsbin.com/oMUSeHO/1/edit

最佳答案

因为在 change 方法中,您将 is_important 设置为数字。

$scope.datas[3].is_important = 0;
$scope.datas[5].is_important = 1;

修改如下

$scope.datas[3].is_important = "0";
$scope.datas[5].is_important = "1";

关于Angularjs:为什么 ng-repeat orderBy:数据属性更改时重新排序不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21274433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com