我在范围内有一组对象($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
数组位置。
答案 0 :(得分: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 :(得分:1)
在if条件
中需要==
if (con.CONT_ORDNO == contractThatsReplaced.CONT_ORDNO) {