我正在使用angularjs使用来自服务器的数据构建动态json。我已将其声明如下。它只适用于来自服务器的数据在对象数组中有一个项目。我应该如何声明它能够动态工作?
$scope.items = [{
id: “”,
locations: [{
name: “”
}]
}]

for (var i=0; i<$scope.data.length; i++)
{
$scope.items[i].id = $scope.data[i].id;
for(var j=0; j<$scope.data[i].locations.length; j++) {
$scope.items[i].locations[j].name = $scope.data[i].locations[j].name;
}
}
&#13;
仅当来自服务器的一条记录
时才有效答案 0 :(得分:0)
在for循环中使用push()方法将数据添加到项目中。
for (var i=0; i<$scope.data.length; i++)
{
//create a json object from your result.
let obj = { id: $scope.data[i].id, locations: .....};
$scope.items.push(obj)
}
答案 1 :(得分:0)
你可以这样做
var $scope.items = [];
for (var i=0; i<$scope.data.length; i++)
{
var obj ={};
obj.id = $scope.data[i].id;
obj. locations = $scope.data[i].locations;// can assign locations array here.
$scope.items.push(obj);
}
答案 2 :(得分:0)
实际问题是
$ scope.data已经是数组,其中包含可以访问其索引i的数据
其中$ scope.items是数组,但仍未编入索引,因此解决方案是 1.使用Push添加数据 2.首先用json创建索引,然后添加数据
$scope.items = [];
for (var i=0; i<$scope.data.length; i++)
{
$scope.items[i]={id : $scope.data[i].id , locations:[]};
for(var j=0; j<$scope.data[i].locations.length; j++) {
$scope.items[i].push($scope.data[i].locations[j].name);
}
}
console.log($scope.items);