如何添加新记录并且有角度"忘记"单击相应按钮后添加的新项目。 添加记录的能力有效,当我添加新记录时,它显示在我所拥有的表中,正确地说,但是我的问题是当我去添加第二条记录时,即删除之前的输入并输入其他内容。这导致下面新添加的记录也发生变化。
总之,我将一个项目添加到我的数组后,我想让角度忘记它。我该如何做到这一点。
在我的控制器中我有这个
(function () {
var app = angular.module("mainApp");
var ordersController = function ($scope,$filter, ordersService,customerService) {
$scope.orders = [];
$scope.addOrder = function (newOrder) {
$scope.orders.push(newOrder);
}
app.controller("ordersController", ["$scope","$filter", "ordersService","customerService", ordersController]);
}());
在我的HTML中我有这个
<div><table>
<tr>
<td><input ng-model="item.quantity" type="text" /></td>
<td><button type="button" ng-click="addOrder(item)">Add Line Item</button></td>
</tr>
</table></div>
<div>
<table>
<tr ng-repeat="order in orders track by $index">
<td>
{{ order.quantity }}
</td>
</tr>
</table>
</div>
答案 0 :(得分:4)
问题可能是您正在将newOrder
对象添加到数组中,而Angular会将其模型绑定到该对象。尝试使用像这样的Angular复制功能(假设您使用的是Angular 1):
$scope.addOrder = function (newOrder) {
var copiedOrder = angular.copy(newOrder);
$scope.orders.push(copiedOrder);
}
可以找到复制方法的文档here。