2017-06-02 22 views
2

我正在處理角項目。我面臨的錯誤是所有數組中顯示的對象的最後一個值。在數組中獲得不同的值我推

$scope.products = [{"product_id":"1", "price:80"},{"product_id":"2", "price:90"}] 

現在我正在使用angular forEach方法。其實我有很多事情,我的產品陣列,所以我使用順序排列,其中二隻提供ID和值

angular.forEach($scope.products, function(value, key){ 
    $scope.order.product_id = value.product_id; 
    $scope.order.price = value.price; 
    $scope.orderProducts.push($scope.order); 

}) 

,但我得到

$scope.orders = [{"product_id":"2", "price:90"},{"product_id":"2", "price:90"}] 

我的控制檯上,我看到

objet{{"product_id":"1", "price:80"} 

但當我打開然後我得到

product_id:"2", 
price: "90" 
+0

其angular.forEach不.foreach .....這怎麼執行的嗎??檢查該https://docs.angularjs.org/api/ng/function/angular.forEach –

回答

0

這裏是你做錯了什麼

angular.foreach($scope.products, function(value, key){ 
    $scope.order.product_id = $scope.products.product_id; 
    $scope.order.price = $scope.products.price; 
    $scope.orderProducts.push($scope.order); 
}); 

Repalce與

$scope.orderProducts = [] 
$scope.products = [{"product_id":"1", "price":80},{"product_id":"2", "price":90}] 
angular.forEach($scope.products, function(value, key){ 
    $scope.orderProducts.push({ 
     product_id : value.product_id, 
     price : value.price 
    }); 
}); 
+0

謝謝Rakesh ..它適用於我.. –

1
angular.foreach($scope.products, function(value, key){ 
    $scope.order.product_id = $scope.products.product_id; 
    $scope.order.price = $scope.products.price; 
    $scope.orderProducts.push($scope.order); 

}) 

在函數中,您正在使用$ scope.products而不是您正在迭代的值和鍵。一些其他的事情不是你的問題清楚,所以,如果你得到糾正,仍然有一個問題也許審查這個問題,以確保你有足夠的細節(理想運行示例)

+0

我的錯在輸入問題..在代碼我使用價值 –

+0

認爲Swati有問題的其餘部分。 – shaunhusain

2
angular.foreach($scope.products, function(value, key){ 
    $scope.order.product_id = $scope.products.product_id; 
    $scope.order.price = $scope.products.price; 
    $scope.orderProducts.push($scope.order); 

}) 

首先你應該使用函數內部的值索引處獲得產品的價值。

angular.foreach($scope.products, function(value, key){ 
    $scope.order.product_id = value.product_id; 
    $scope.order.price = value.price; 
    $scope.orderProducts.push($scope.order); 

}) 

接下來要更改的相同對象在迭代時在下次迭代分配新值,即$ scope.order 這意味着orderProducts陣列中推第一順序改變。 您應該創建一個局部變量,然後將其推入數組中。

angular.foreach($scope.products, function(value, key){ 
    val orderObj = {}; 
    orderObj.product_id = value.product_id; 
    orderObj.price = value.price; 
    $scope.orderProducts.push(orderObj); 

}) 
+0

請不要做簡單的複製粘貼.....其angular.forEach不是.foreach .....如何執行你的??檢查此https:// docs .angularjs.org/api/ng/function/angular.forEach –

+0

@SaEChowdary的問題相當sl and,不清楚,這裏的答案指出了實際的問題,無論是使用錯誤的對象獲取值並在推入時重新使用相同的對象事實上,OP沒有花時間正確地複製和粘貼他們自己的代碼不應該成爲那些回答IMO的負擔 – shaunhusain