Angularjs 值为.split的Angular.forEach上的错误不是函数
我想获取$HTTP的响应并将其映射到一个空对象。这是我试过的 主代码Angularjs 值为.split的Angular.forEach上的错误不是函数,angularjs,Angularjs,我想获取$HTTP的响应并将其映射到一个空对象。这是我试过的 主代码 function myData( myUrl) { $http({ method: 'POST', url: "http://localhost:8085/api/foo", data: $scope.myUrl, }) .then( funct
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。拆分不是一个函数
现在我已经尝试了硬编码的练习演示。效果很好。这是演示
演示:
我怎样才能解决这个问题?提前感谢。拆分需要一个字符串 您正在使用..对数组进行迭代
valueToObj.split
这假设每次迭代时,valueToObj都是一个字符串。但是,如果它不是字符串,那么函数将不存在,并且您将得到此错误。这是因为split函数只存在于字符串上
angular.forEach(response, function(valueToObj, key) {
$scope.obj.push(
{
'key' : $scope.resultForRecord.toString().split("=")[0],
'value' : $scope.resultForRecord.toString().split("=")[1]
}
);
});
我重新格式化了你的代码,让它更清晰
阅读该代码:
response
的所有字段response
是HTTP响应对象,它有4个字段:状态(数字)、标题、数据和配置。实际上,您希望迭代作为响应(response.data
)的主体发送的JSON对象的元素李>
值拆分为bj
,而是拆分$scope.resultForRecord.toString()
。因此,您将同一个内容拆分多次,这是整个HTTP响应的字符串表示形式angular.forEach(response.data, function(element) {
$scope.obj.push(
{
'key' : element.split("=")[0],
'value' : element.split("=")[1]
}
);
});
或者,清洁剂:
$scope.obj = response.data.map(function(element) {
var parts = element.split("=");
return {
key: parts[0],
value: parts[1]
};
});
您的代码不完整,因此我们不得不猜测。我的猜测是,您希望分割作为HTTP响应数据的数组的每个元素。但是您要分割HTTP响应对象的每个值(状态、头、数据等)。只需使用调试器,或记录响应的值,就会有所帮助。您似乎已经这样做了,但您也没有发布日志。对此,我深表歉意
$scope.obj = response.data.map(function(element) {
var parts = element.split("=");
return {
key: parts[0],
value: parts[1]
};
});