我有一个简单的对象数组:
$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>
OR
<div ng-repeat="row in asd | orderBy:id:reverse">
{{row.id}}
</div>
但它不起作用,它可以是什么?
我没有控制台错误,我只是按照指南:https://docs.angularjs.org/api/ng/filter/orderBy
任何有用的帮助,谢谢
答案 0 :(得分:4)
在您的示例中,username
和id
应该被引用!该表达式必须求值为一个字符串,用于查找对象属性。请再次参考文档,您将看到predicate
是一个解析为字符串值的变量。
解决方案:
<div ng-repeat="row in asd | orderBy:'username':true">
{{row.username}}
</div>
此外,reverse
应评估为布尔表达式。
为您的数据工作fiddle。