我的客户需要一个角度js应用程序,该应用程序基于api,已经运行的应用程序。 其中一个apis,返回一个像这样结构的json:
{
"groups":{
"60":{
"name":"History"
},
"74":{
"name":"Discover our offers"
},
"109":{
"name":"Relaxing"
}
}
}
所以我们以这种方式在控制器上获取数据:
$http({method: 'GET', url: restUrl}).
then(function(response)
{
$scope.poi_groups = response.data.groups;
});
并将其显示在视图上:
<ul class="content-menu">
<li ng-repeat="(key, value) in poi_groups">
<div><a ng-href="/poi/data/{{ key }}">{{ value.name }}</a></div>
</li>
</ul>
我一直在努力的是按名称订购物品,现在它的显示方式与它在json上的返回方式完全一致。 我该怎么做:
(...)
<li ng-repeat="(key, value) in poi_groups | orderBy: value.name">
(...)
答案 0 :(得分:1)
这种结构不适合angularjs:
在.then方法中将对象映射到一个新对象,使其如下所示:
[{ 值:&#39; 60&#39 ;, 名称:&#39;历史&#39; },{ .... }]
然后你可以使用角度过滤。
答案 1 :(得分:0)
使用ngRepeat orderBy
使用 orderBy: 'name'
<li ng-repeat="(key, value) in poi_groups| orderBy:'name'">
和
<li ng-repeat="(key, value) in poi_groups| orderBy:'name': -1">
表示DESC
如果你做plnk我们可以检查出来