在双角度重复中我的数组的顺序错误

时间:2013-05-26 21:31:57

标签: javascript angularjs ng-repeat

我从mongodb数据库集合中获得了一个Json数据。

我设法显示了这个json的键。

现在,我正试图通过双重ng-repeat在表格中显示一个数组 图。

我几乎得到了我想要的东西,但价值顺序不正确。

如果我使用我的项目的属性名称,这很好,但我不希望这样。

我在我的视图中使用此代码:

<table class="table table-striped">
<caption>Content</caption>

<thead>
    <tr>
    <th ng-repeat="caption in captions">
    {{caption}}
    </th>
    </tr>
</thead>

<tbody>
<tr ng-repeat="content in contentCollection">
<td ng-repeat="item in content">
{{item}}
</td>
</tr>
</tbody>
</table> 

将显示:

_id     session     expires

id1         expires1        session1

应该是:

_id     session     expires

id1     session1    expires1

我使用正确的值顺序(id1,session1,expires1)从我的控制器发送一个数组。我可以在Chrome控制台中看到console.log()

我想我必须做一个指令才能得到一个解决方法,但也许我错过了一些东西。

你对错误有所了解吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

在ng-repeat中,如果您想确保订单,则需要使用orderby过滤器http://docs.angularjs.org/api/ng.filter:orderBy。您不需要指令,但如果您需要高级订购,可能需要为您的过滤器定制比较器。

如果你的数组只是一个字符串列表,那么你需要一个自定义过滤器,例如:

angular.module('myApp',[])
    .filter('mySort', function() {
        return function(list) {
            return list.sort();
        }
    });

但是考虑到你的观点,我假设你有一个物体而你只需拉动碎片并对这个重复设置进行预标准化。如果是这种情况,您将需要更像http://plnkr.co/edit/ART87TjilotbnsuD02y1?p=preview处的代码。

注意:您需要将数组移动到服务中并让服务也返回密钥。

最后,您可以考虑将整个表移动到一个指令中,以便在重复此过程时更好地解析对象的各个部分。