多个表单 ng-repeat - 仅回发当前$scope,而不是整个对象



我有多个使用 ng-repeat 的形式。

<div ng-repeat="individual in orderDetails track by $index">
    <form ng-submit="saveDetails();">
      <input ng-model="individual.order.statusText">
      <button type="submit">Save changes</button>
    </form>
</div>

下面是存储在我的对象中的内容的示例,适用于 OrderDetails(IE - 对象)中的每个个体

orderDetails {
    object{
        foo {},
        bar {},
        order {}
    },
    object{
        foo {},
        bar {},
        order {}
    }       
}

现在我在中继器中引用带有 individual 的数据,如何在回发到服务器时仅提交单个个人的订单,而不是整个 orderDetails 对象?

这是我的保存功能,用于表单提交按钮

$scope.saveDetails = function(data, status) {               
    ordersService.updateOrder($scope.orderDetails.individual.order)
    // once submitted update the whole model on the page again
    .success(function(data, status) {                   
        $scope.orderDetails = data;                 
    })                         
}

这是我的服务:

getData.updateOrder = function(data){
    var url = '/service/rest/orders';
    return $http.post(url, data)                    
    .error(function (data, status, headers, config) {
        console.error('Error fetching feed:', status, headers, config);
    });
};            
return getData; 

再次感谢您的任何帮助。

很简单,将individual对象传递到提交处理程序中,例如

$scope.saveDetails = function(individual) {
    ordersService.updateOrder(individual.order).success(function(data) {
        $scope.orderDetails = data;
    });
};

并在您的 HTML 中

<form ng-submit="saveDetails(individual)">

要用新数据覆盖individual顺序,您可以将其写回individual,例如

.success(function(data) {
    angular.extend(individual, data); // or angular.merge for deep extending
});

最新更新