【发布时间】:2014-10-12 20:35:10
【问题描述】:
我有一个复杂的数组,它在父对象中包含对象。我已经通过 ng-repeat 提取了我想要使用的对象并将它们返回。我希望能够使用角度 forEach 将所有这些对象放入一个数组中。我不太确定该怎么做。
这是我要返回的对象:
{"day":"21","title":"ok","summary":"ok","description":"ok","_id":"53ee9f0fc6aed109c6d33cfd"}
{"day":"2","title":"ok","summary":"ok","description":"ok","_id":"53ee9f038782309c6d892"}
{"day":"27","title":"ok","summary":"ok","description":"ok","_id":"533240fc6ae32433chd"}
这是我的观点:上面的对象由 ng-repeat 中的“项目”表示。
<div class="calDynamic" data-ng-repeat="n in [] | range:100">
<div ng-repeat="cal in calendar[n].year | filterKey:month">
<div ng-if="cal != '' ">
<div class="calendar">
<p>{{cal}}</p>
<div ng-repeat="items in cal ">
<a href="/events/{{items.day}}">
<article class="eventslist">
<div class="numberedDate">
<h3>{{items.day}}</h3>
</div>
<div class="calInfo">
<h5>{{items.title}}</h5>
<p>{{items.summary}} <a>more</a></p>
</div>
</article>
</div><!-- ng-repeat val,key -->
</div><!-- calendar -->
</div><!-- ng-if cal -->
</div><!-- ng-repeat cal -->
</div><!-- calDynamic -->
我将如何使用如下所示的 foreach 循环将这些返回的对象存储到一个数组中,以便我可以对其使用 filter 方法?
var arr = [];
angular.forEach(items, function (item) {
arr.push(item);
});
【问题讨论】:
-
不,我想按“天”值对数组进行排序。如果可能的话,我想从对象创建数组,然后在视图中使用该数据。总体目标是能够对数据使用过滤器。
-
在这种情况下,只需过滤
ng-repeat="items in cal | insertdayfilterhere" -
您也可以在一个过滤器上拥有多个过滤器,如果您想添加到父级
ng-repeat"cal in calendar[n].year | filterKey:month | insertdayfilterhere">,只需使用|将它们分开即可。 -
我已经尝试过了,似乎对象的复杂性阻止了对日值的过滤。这是从中提取“项目”对象的整个对象。
-
{ "_id" : ObjectId("5"), "year" : { "December" : [], "November" : [], "October" : [], "September" : [],“八月”:[],“七月”:[{“天”:“21”,“标题”:“u”,“摘要”:“u”,“描述”:“ok”,“_id " : ObjectId("5366d") } ], "June" : [], "May" : [], "April" : [], "March" : [], "February" : [], "January" : [] }, }