2

我有一个简单的对象数组:

  $scope.asd = [{"approved":true,"id":"542fb8972be5b5cc4356dd51","username":"k"},
{"approved":false,"id":"542fbea3bae6fe4449c838d5","username":"tototod"},
{"approved":false,"id":"54324929afafdb92209b2474","username":"asdasd"}
];

然后在视图中我想像这样打印值和 orderBy id 或用户名:

<div ng-repeat="row in asd | orderBy:username:reverse">
{{row.username}}
</div>

或者

<div ng-repeat="row in asd | orderBy:id:reverse">
    {{row.id}}
    </div>

但它不起作用,它可以是什么?

我没有控制台错误,我只是按照这里的指南操作:https ://docs.angularjs.org/api/ng/filter/orderBy

任何帮助,谢谢

4

1 回答 1

4

在你的例子中usernameid应该被引用!该表达式必须计算为一个字符串,该字符串将用于查找对象属性。请再次参考文档,您将看到这predicate是一个解析为字符串值的变量。

解决方案:

<div ng-repeat="row in asd | orderBy:'username':true">
    {{row.username}}
</div>

此外,reverse应该评估为布尔表达式。

您的数据工作。

于 2014-10-06T10:35:34.870 回答