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

mis*_*iso 5 angularjs ecmascript-6

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

小智 5

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

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

angular.module('SomeModuleName')
.filter('mapToArray', function() {
    return function(map) {
        return [...map.values()];
    };
});
Run Code Online (Sandbox Code Playgroud)

然后在模板中使用它:

<div ng-repeat="item in Map | mapToArray">
Run Code Online (Sandbox Code Playgroud)

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


Min*_*ato 3

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

请参阅Angular-toArrayFilter以供参考。您还可以创建自己的过滤器,例如toArraFilterMap并将其与inside一起使用ngRepeat