操纵ng-repeat的输出

时间:2014-06-09 03:44:38

标签: javascript angularjs

我正在开发一个Angular应用程序,它将充当社交媒体仪表板。它将根据搜索条件从Twitter,Instagram和Flickr加载和显示内容。

我正在加载每个资源并将结果存储在名为$scope.items的数组中,然后在我的视图中,我将它们渲染为:

<div ng-repeat="item in items | orderBy:'galleryTimestamp':true">
    <p ng-if="item.galleryType=='instagram'">Instagram Photo</p>
    <p ng-if="item.galleryType=='twitter'">Twitter Post</p>
    <p ng-if="item.galleryType=='flickr'">Flickr Photo</p>
</div>

这完全没问题,但是我希望能够更好地控制渲染方式。理想情况下,我想控制来自每个来源的内容组合。现在,它将连续吐出5条推文,然后是6张Instagram照片,然后是10条推文,然后是flickr照片。

有没有办法操纵我的$scope.items数组或过滤或排序这些以使页面看起来更像[Instagram Photo] [Tweet] [Flickr Photo]并重复...集。

1 个答案:

答案 0 :(得分:0)

你应该在你的范围内重构你的物品属性,以循环你想要的方式,在这种情况下[Instagram照片] [推特] [Flickr照片]。在这种情况下,我会避免使用ng-if,只是将项重组为:

items = {
    instagram: 'instagram thing',
    tweet: 'tweet thing',
    flickr: 'flicker thing'
}