问题描述
<div class="row" ng-repeat="product in products">
<div class="col-sm-12 col-md-3">
<div class="form-group">
<input type="text" name="warehouseName"
ng-model="warehouseName"
ng-readonly="true"/>
</div>
</div>
....
</div>
$scope.getAllProductsByWarehouseId = function() {
productService.getAllProductsByWarehouseId($scope.product.id).$promise
.then(function (response) {
$scope.products = response;
console.log("response",$scope.products[0]);
console.log("response",$scope.products[1]);
for(let i=0; i<=$scope.products.length; i++) {
$scope.products = response;
console.log("response",$scope.products[i]);//However I have a list,this return one value
this.products.push(response);
}}).catch(function(e) {
console.log('Error: ',e);
throw e;
}).finally(function() {
console.log('This finally block');
});
}
这是我项目的一部分。当对象产品是具有3个对象的列表时。带有控制台日志
console.log(“ response”,$ scope.products [0]);
console.log(“ response”,$ scope.products [1]);
我可以看到物体..正确!!!!!!
但是在网络浏览器中,我得到了相同对象的两倍。.有什么办法纠正它吗?
解决方法
不确定我是否完全理解您的问题,但是您两次将api响应分配给$ scope.products。
$scope.products = response; //here you assign it after the promise
console.log("response",$scope.products[0]);
console.log("response",$scope.products[1]);
for(let i=0; i<=$scope.products.length; i++) {
$scope.products = response; // and again here.
console.log("response",$scope.products[i]);//However I have a list,this return one value
this.products.push(response); // not sure what this does
}
,
您的代码中有几个问题,主要的问题是将响应分配给$ scope.products,这看起来没有必要。您应该使用数组来初始化$ scope.products,并始终将项目推入其中,而不是覆盖整个列表。
$scope.getAllProductsByWarehouseId = function() {
$scope.products = []
productService.getAllProductsByWarehouseId($scope.product.id).$promise
.then(function (response) {
for(let i=0; i<=$scope.products.length; i++) {
// $scope.products = response;
console.log("response",this return one value
this.products.push(response);
}}).catch(function(e) {
console.log('Error: ',e);
throw e;
}).finally(function() {
console.log('This finally block');
});
}