迭代$ scope中的对象数组并更新它

时间:2017-06-07 18:12:23

标签: javascript angularjs

我在范围内有一组对象($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 个答案:

答案 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) {