绑定到AngularJS范围的映射变为空对象

时间:2016-02-19 18:42:51

标签: angularjs angularjs-scope ecmascript-6

每当我尝试将Map绑定到作用域时,它会在摘要周期中替换为空对象。任何人都可以解释为什么会这样吗?

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.testMap = new Map();
    $scope.testMap.set("testKey", "testValue");
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
  <pre>{{testMap}}</pre>
</div>

1 个答案:

答案 0 :(得分:3)

不支持将Map转换为JSON(或者,确切地说,地图的条目不是序列化的,就好像它们是常规对象的字段一样)。

因此Angular无法显示地图的内容(使用{{ testMap }}显示对象时会隐式使用json滤镜。

示范:http://plnkr.co/edit/AjJWNGXZLR5KhhJ8cz0g?p=preview

相关:How do you JSON.stringify an ES6 Map?