问题问题: 我正在调用API并返回该对象。现在我想将空数组添加到此对象并在我的视图中使用它。我如何用角度来实现这个目标?
//控制器这可以作为数据手动
$scope.deliveryData = [
{
productName: 'ProductA ProductA ProductA', quantity: '20', deliveries: []
},
{
productName: 'Product B', quantity: '10', deliveries: []
}
];
// controller这不起作用:(我如何添加(deliveryies:[])到这个?
$scope.deliveryData; // This will be now populated from API
MyService.delivery()
.success(function(data){
$scope.deliveryData= data;
console.log(data) //this data does not contain the empty array, how i append to it?
})
.error(function(status,data){
console.log(status);
console.log(data);
})
我不知道如何以棱角分明的方式实现这一目标,即使我不知道我是否正在以正确的方式行事。请给我任何建议。
更新1
.success(function(data){
$scope.deliveryData = data;
console.log("Before Change");
console.log($scope.deliveryData);
for (var i = 0; i < $scope.deliveryData.length; i++) {
$scope.deliveryData[i].deliveries = [];
}
console.log("After Change");
console.log($scope.deliveryData);
})
以下列格式来自API的数据:
-Object {delivery: Array[1]}
--delivery: Array[1]
---0:Object
----name: "ProductA ProductA ProductA"
----quantity: 14
答案 0 :(得分:1)
要为每个产品项添加{deliveries: []}
,您应该执行以下操作:
.success(function(data){
$scope.deliveryData = data.delivery;
for (var i = 0; i < $scope.deliveryData.length; i++) {
$scope.deliveryData[i].deliveries = [];
}
})
更新
这是基本的东西,没有办法不起作用,请看这里:
var $scope = {};
$scope.deliveryData = [ // no deliveries here
{productName: 'ProductA ProductA ProductA', quantity: '20'},
{productName: 'Product B', quantity: '10'}
];
for (var i = 0; i < $scope.deliveryData.length; i++) {
$scope.deliveryData[i].deliveries = [];
}
document.getElementsByTagName('pre')[0].innerHTML = JSON.stringify($scope, null, '\t');
<pre></pre>