作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在范围内有一个对象数组 ($scope.contracts
)。当我运行我的函数时,我传递了一份契约(Contract)。我希望它迭代 $scope.contracts
并找到具有相同 .CONT_ORDNO 的契约(Contract)。然后我想把这个合约设置为传入的合约。
$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
中的数组位置的实际契约(Contract)没有被更新。我如何确定它是?
注意,我不想删除和替换契约(Contract),我想更新它。
编辑:我将 if 语句更新为有两个 (==)。这并不能解决问题。它仍然只是正确设置 con 变量,而不是 $scope.contracts
数组位置。
最佳答案
分配给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
语句中的 =
更改为 ==
。
关于javascript - 遍历 $scope 中的对象数组并更新它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44419965/
我是一名优秀的程序员,十分优秀!