【发布时间】:2020-10-19 01:52:59
【问题描述】:
我正在执行 http 调用以从数据库中获取数据。有 6 种类型需要单独调用。
$scope.getAll = function() {
var url = 'http://someurl/';
varl allObjects = [];
$scope.types.forEach(element => {
http({
method: 'GET',
url: url + element.name
}).then(function successCallback(response) {
allObjects.push(response.data);
}, function errorCallback(response) {
// this doesn't apply to my issue
});
$scope.allObjects = allObjects;
}
返回类似于以下 JSON 对象:
[{},
[{ "label":"myLabel",
"types": {
"source":{"url":"some url, "storage":"some storage"}}},
{ "label":"myLabel",
"types": {
"source":{"url":"some url, "storage":"some storage"}}}],[{ more objects}],[{ more objects}],],
所有对象都返回具有嵌套数组的相同结构。我需要帮助解决的问题是每次它通过类型的迭代时,它都会将其添加为对象数组。我需要将其添加为新对象,而不是对象数组。即:
我得到了什么:
[{}, [{first iteration}], [{second iteration}], [{etc}]]
我需要什么:
[{first iteration}, {second iteration}, {etc}]
【问题讨论】:
-
不要将 response.data 推送到 allObjects,因为您的响应已经在数组中。只需将其分配给变量
-
@MuhammadFazeel 我正在推动它,因为我需要它附加到数组中。如果我将它分配给一个变量,它将在 for each 方法期间被覆盖。
-
阅读组件和控制器的语法。任何包含注入 $scope 的文章都可以被认为是过时的。
-
@codeandrunningmom 我的回答能解决你的问题吗?
标签: javascript json angularjs