如何在AngularJS ng-repeat中使用ES6 Map

时间:2016-02-11 10:52:35

标签: angularjs ecmascript-6

AngularJS 1.x的 ng-repeat 是否与 ES6地图兼容?

3 个答案:

答案 0 :(得分:4)

最简单的方法是根据建议的@Minato创建自己的角度过滤器。

您可以使用ES6 Spread语法将地图转换为数组:

angular.module('SomeModuleName')
.filter('mapToArray', function() {
    return function(map) {
        return [...map.values()];
    };
});

然后只需在模板中使用它:

<div ng-repeat="item in Map | mapToArray">

你也可以使用lodash toArray方法: https://lodash.com/docs/4.17.4#toArray

答案 1 :(得分:3)

ngRepeat目前不支持Map ..要使用它,您必须首先将其转换为JavaScript数组..或者在使用时编写过滤器进行转换。< / p>

请参阅angular-toArrayFilter以供参考。您也可以创建自己的过滤器,例如 toArraFilter ,并将其与Map内的ngRepeat一起使用。

答案 2 :(得分:0)

请参阅我的回答here,了解将ng-repeat绑定到Angular 1.x中的ES6 Map的解决方案。