我正在开发一个Angualr应用程序,我们有一个Map对象(如下所示).地图对象(headerObj)的关键和值来自用户作为应用程序的输入,
var headerObj = new Map(); headerObj.set(key,value);
我正在使用foreach迭代它们,如下所示,输出正如预期的那样
$scope.inputHeaders.forEach(function (headerkey,headervalue) { console.log(headerkey,headervalue; });
但我必须在UI中显示这个地图值,用户可以再次编辑,所以我已将它们绑定
<li class="list-group-item" ng-repeat="header in inputHeaders"> <div ng-repeat="(key,value) in header"> {{key}} : {{value}} </div> </li>
我用谷歌搜索并尝试了几种方法,但没有任何帮助,所以基本上我想知道如何使用forEach在角度上迭代地图?
为了更清晰,我的要求是这样的:我需要将值作为键,值对传递给服务器,只有在我没有错的情况下,假设我使用对象属性,对象的键将被修复为某些东西喜欢
{"key":"Content-Type","value":"application/x-www-form-urlencoded","$$hashKey":"003"}]
但我的服务器期待像
"Content-Type" => "application/x-www-form-urlencoded"
创建了一个plunkr编辑http://plnkr.co/edit/t2g6Dl831HGyjD6uSdf3?p=preview
解决方法
AngularJS 1.x不知道如何使用Javascript迭代器,因此您必须首先使用
Array.from()将Map对象转换为Array.
控制器:
$scope.inputHeadersArray = Array.from($scope.inputHeaders);
视图:
<li class="list-group-item" ng-repeat="header in inputHeadersArray"> {{header[0]}} : {{header[1]}} </li>