2016-11-08 41 views
1

我需要在ng-repeat中订购JSON的帮助。我想通过item.id来订购我的数据(从最高到最低)。我试过很多的技巧,是在互联网,但也许我只是做一些错误的,因为他们都不是为我工作...我的代码:在Angular(Ionic)中订购JSON数据

$http.get('http://jastrzebieonline.pl/drogi/data/najnowsze.php') 
    .success(function(res){ 
    $scope.news = res; 
    console.log("Ok"); 
    }) 
    .error(function(data, status) { 
    console.log("Error"); 
}) 

<div ng-repeat="item in news"> 
    <a href="{{ item.id }}"> 
     <img src="{{ item.image }}"> 
     <h2>{{ item.title }}</h2> 
     <p>{{ item.date }}</p> 
     <p>{{ item.text }}</p> 
    </div> 
    </a> 
</div> 
+0

确保您的 '身份证' 属性的类型为整数。那么只要在新闻| orderBy:' - id'''' – devqon

回答

1

可以使用orderBy过滤器:

<div ng-repeat="item in news | orderBy:'id'"> 
    <a href="{{ item.id }}"> 
     <img src="{{ item.image }}"> 
     <h2>{{ item.title }}</h2> 
     <p>{{ item.date }}</p> 
     <p>{{ item.text }}</p> 
    </div> 
    </a> 
</div> 
0

您可以使用“orderBy”过滤器来完成这项工作。顺便说一下,你应该使用'ngHref'和'ngSrc'指令,而不是原来的'href'和'src'属性。

<div ng-repeat="item in news | orderBy:'id':true"> 
    <a ng-href="{{ item.id }}"> 
     <img ng-src="{{ item.image }}"> 
     <h2>{{ item.title }}</h2> 
     <p>{{ item.date }}</p> 
     <p>{{ item.text }}</p> 
    </div> 
    </a> 
</div> 

引用:

https://docs.angularjs.org/api/ng/filter/orderBy

https://docs.angularjs.org/guide/filter

+0

中执行'ng-repeat ='项目不起作用。我尝试过: item in news | orderBy:-id item in news | orderBy:'-id' item in news | orderBy:-item.id item in news | orderBy:'-item.id' 我在控制台中出现错误:错误:[orderBy:notarray]预计数组 –

+0

然后,您应该在console.log(“确定”)之前添加'console.log(res)'以查看内容你的水库就像。 – Declan

+0

水库只是对象 我试图转换它,但仍然无法正常工作。我解决了这个问题: item in news | toArray:true | orderBy:'-id' toArray filter在这里:https://github.com/petebacondarwin/angular-toArrayFilter –