我想获取$ HTTP的响应并将其映射到一个空对象。在这里我曾尝试Angular.forEach上的错误,value.split不是函数
主代码
function myData(myUrl) {
$http({
method: 'POST',
url: "http://localhost:8085/api/foo",
data: $scope.myUrl,
})
.then(
function successCall(response) {
$scope.resultForRecord=response;
$scope.obj=[];
angular.forEach(response,function (valueToObj,key) {
$scope.obj.push(
{'key' : $scope.resultForRecord.toString().split("=")[0],'value' : $scope.resultForRecord.toString().split("=")[1]})});
console.log($scope.obj);
},
function errorCall(response) {
console.log(response);
$scope.resultForRecord=response;
});
}
,误差valueToObj.split不是一个函数
现在我已经尝试了硬编码实践演示。这工作得很好。这里是演示
DEMO:
angular.module('app')
.controller('MainCtrl', function ($scope) {
$scope.dataSet=[
"jon=12",
"petter=10",
"sara=8"
];
$scope.obj=[];
angular.forEach($scope.dataSet,function (key,value) {
$scope.obj.push(
{'name' : key.split("=")[0],'age' : key.split("=")[1]}
);
});
console.log($scope.dataSet);
console.log($scope.obj);
});
我怎么能解决这个问题?在此先感谢
您的代码是不完整的,所以我们不得不猜测。我的猜测是,你想分割你得到的数组中的每一个元素作为HTTP响应的** data **。但是,您将HTTP响应对象的每个值(状态,标题,数据等)分开。简单地使用你的调试器,或记录响应的价值,将会有所帮助。你似乎已经这样做了,但是你还没有发布记录的内容。 –
更新对不起, – TheTechGuy