我的 $scope.product 仍然在变化,即使我已经将它的值传递给另一个变量 $scope.editOrDeleteProduct
My $scope.product still changing even I already passed its value to another variable which is $scope.editOrDeleteProduct
首先我在 table
中使用我的 $scope.product
<tr ng-repeat="product in products ng-click="productClicked(product)">
<td>{{product.prod_name}}</td>
<td>{{product.company}}</td>
</tr>
然后我的 productClicked 在我的控制器中是这样的
$scope.productClicked = function (product) {
$scope.editOrDeleteProduct = product;
}
我正在将值传递给另一个 editOrDeleteProduct。我在表单中使用 editOrDeleteProduct。
<input type="text" class="form-control empty" id="inputProductname" placeholder="Enter product name." ng-model="editOrDeleteProduct.prod_name" disabled>
<input type="text" class="form-control empty" id="inputBrand" placeholder="Enter the company." ng-model="editOrDeleteProduct.company" disabled>
然后,当我更改表单中的某些内容时,在 editOrDeleteProduct 中传递的 table 中的数据也会更改。我只想知道那里发生了什么,以及如何在不更改 table?
中的任何数据的情况下更改表单中的内容
你需要使用深拷贝使用angular.copy(product);
$scope.editOrDeleteProduct = angular.copy(product);
首先我在 table
中使用我的 $scope.product<tr ng-repeat="product in products ng-click="productClicked(product)">
<td>{{product.prod_name}}</td>
<td>{{product.company}}</td>
</tr>
然后我的 productClicked 在我的控制器中是这样的
$scope.productClicked = function (product) {
$scope.editOrDeleteProduct = product;
}
我正在将值传递给另一个 editOrDeleteProduct。我在表单中使用 editOrDeleteProduct。
<input type="text" class="form-control empty" id="inputProductname" placeholder="Enter product name." ng-model="editOrDeleteProduct.prod_name" disabled>
<input type="text" class="form-control empty" id="inputBrand" placeholder="Enter the company." ng-model="editOrDeleteProduct.company" disabled>
然后,当我更改表单中的某些内容时,在 editOrDeleteProduct 中传递的 table 中的数据也会更改。我只想知道那里发生了什么,以及如何在不更改 table?
中的任何数据的情况下更改表单中的内容你需要使用深拷贝使用angular.copy(product);
$scope.editOrDeleteProduct = angular.copy(product);