如何按特定顺序获取json文件数据?

时间:2016-08-02 12:12:01

标签: javascript angularjs

我使用AngularJS将3个不同的json文件解析为html页面。  这是我的代码:

工厂代码

app.factory('myapp', ['$http', function($http) {        
function getLists() {
    var tab = ['url1', 'url2', 'url3'];
    var list = [];
    for(i = 0; i < tab.length; i++) {
        $http.get(tab[i]) 
        .then(function(res) {
            list.push(res.data);
        });
    }
    return list;
}

return {
    getLists: getLists
};
]);

我想要的是按性别(男/女)显示不同文件的数据取决于名称'nm'。女孩的名字然后是男孩的名字。第一行的第一个网址,第二行的第二个网址等的数据......

Html代码:

<tr ng-repeat="d in list">
  <td>{{d.nm}}</td>
  <td>{{d.cty}}</td>   
  <td>{{d.hse}}</td>
  <td>{{d.yrs}}</td> 
</tr> 

我想在控制器中做一个if测试,我指定了女孩的名字和男孩的名字,但对我来说,如何做到这一点并不是很明显 我该怎么办?

3 个答案:

答案 0 :(得分:0)

Angular有orderBy指令,您可以在ng-repeat中使用它来对数据进行排序。

尝试那样;

将genderField和nameField替换为您的名称。

<tr ng-repeat="d in list| orderBy:['genderField','nameField']">
  <td>{{d.nm}}</td>
  <td>{{d.cty}}</td>   
  <td>{{d.hse}}</td>
  <td>{{d.yrs}}</td> 
</tr> 

Reference

答案 1 :(得分:0)

我创建了一个id,因为@tommoc在评论中提示我并且有效:)

答案 2 :(得分:0)

您可以为名称提供ID。然后为orderBy提供名称的id

<tr ng-repeat="d in list| orderBy:ID">

</tr>