如何添加新记录而不更新angularjs中的先前记录

时间:2017-08-31 20:44:41

标签: angularjs asp.net-mvc

如何添加新记录并且有角度"忘记"单击相应按钮后添加的新项目。 添加记录的能力有效,当我添加新记录时,它显示在我所拥有的表中,正确地说,但是我的问题是当我去添加第二条记录时,即删除之前的输入并输入其他内容。这导致下面新添加的记录也发生变化。

总之,我将一个项目添加到我的数组后,我想让角度忘记它。我该如何做到这一点。

在我的控制器中我有这个

(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>

1 个答案:

答案 0 :(得分:4)

问题可能是您正在将newOrder对象添加到数组中,而Angular会将其模型绑定到该对象。尝试使用像这样的Angular复制功能(假设您使用的是Angular 1):

$scope.addOrder = function (newOrder) {
        var copiedOrder = angular.copy(newOrder);
        $scope.orders.push(copiedOrder);
    }

可以找到复制方法的文档here