2017-06-07 49 views
0

我有一個範圍內的對象數組($scope.contracts)。當我運行我的功能時,我通過合同。我希望它遍歷$scope.contracts並找到具有相同.CONT_ORDNO的那個。然後我想訂立本合同爲傳入的合同。

$scope.mergeContract = function (contractThatsReplaced) {//clicked 2nd new 
     angular.forEach($scope.contracts, function (con) { 
      if (con.CONT_ORDNO == contractThatsReplaced.CONT_ORDNO) { 
       con = $scope.contractToMerge; 
      } 
     }); 
    }; 

下面是我試圖做到這一點,但這一切我想除了只有CON變量發生變化,實際的合同是在一個陣列位置$scope.contracts未被更新。我如何確保它是?

注意我不想刪除並替換合同,我想更新它。

編輯:我更新了if語句有兩個(==)。這不能解決它。它仍然只是正確設置con變量,而不是$scope.contracts陣列位置。

回答

2

分配到con只改變局部變量。試試這個:

$scope.mergeContract = function (contractThatsReplaced) {//clicked 2nd new 
    angular.forEach($scope.contracts, function (con, i) { 
     if (con.CONT_ORDNO == contractThatsReplaced.CONT_ORDNO) { 
      $scope.contracts[i] = $scope.contractToMerge; 
     } 
    }); 
}; 

此外,您還需要在if語句更改===

1

需要==在if條件

if (con.CONT_ORDNO == contractThatsReplaced.CONT_ORDNO) { 
+0

if語句正在打破,但我會檢查這是否會改變事情。 –

+0

=表示分配; ==和===意味着比較和精確比較(即類型也被比較)。 – nadavvadan

+0

這不起作用。不過,只有con變量被設置,而不是$ scope.contracts數組的位置。 –