角重复 - 重复一次

时间:2013-09-10 14:08:59

标签: javascript json angularjs foreach repeat

不确定这是否可能与Angular有关,但它会很可爱。

说我有一个汽车的json对象。所以很多车型和很多品牌(福特,沃克斯豪尔,大众汽车等)。然后我将使用data-ng-repeat列出所有汽车。

但我想列出能够按汽车制造过滤的复选框。在得到JSON之前我不会知道汽车的可能性,所以我不能预先填充列表。

这是一个快速演示 http://jsbin.com/AkiGaLO/3/edit

现在我可以单独循环遍历所有项目,拉出make,检查make是否存在于另一个数组中,如果没有把它扔进去。但这一切看起来都很无聊:)我可能会处理成千上万的对象

Angular有一个快速的胜利吗?或者在正常的JS中。

干杯

1 个答案:

答案 0 :(得分:0)

您可以创建自定义过滤器,以返回汽车品牌名称的唯一列表。

<div data-ng-repeat="carmake in cars | uniquemake">
    <input type="checkbox" ng-model="search[carmake]" />{{ carmake }}
</div>

app.filter('uniquemake', function () {
    return function (cars, length, end) {
        var result = {};
        angular.forEach(cars, function (car) {
            result[car.make] = 1;
        });
        return Object.keys(result);
    };
});