AngularJS-防止表单清除

AngularJS-防止表单清除,angularjs,Angularjs,提交带有ng submit=“createNewOrder()”的表单时,我将调用一个执行服务器端验证的资源服务。但是,表单字段在服务返回后被清除。如何防止Angular在资源服务返回表示成功的响应之前清除字段 编辑:添加代码 HTML: 控制器: app.controller('OrdersController', function ($scope, Order) { $scope.newOrder = new Order({ }); $scope.createNewOrder = f

提交带有ng submit=“createNewOrder()”的表单时,我将调用一个执行服务器端验证的资源服务。但是,表单字段在服务返回后被清除。如何防止Angular在资源服务返回表示成功的响应之前清除字段

编辑:添加代码

HTML:

控制器:

app.controller('OrdersController', function ($scope, Order) {
  $scope.newOrder = new Order({ });
  $scope.createNewOrder = function () {
    $scope.newOrder.$create(
      function(successData) {
        if (successData.error) return alert('order was not saved successfully');
        alert('order successfully charged and created');
      },
      function(errorData) { 
        alert('order was not saved successfully: ' + JSON.stringify(errorData));
      }
    );
  };
});
服务:

angular.module('orderServices', ['ngResource']).
  factory('Order', function ($resource) {
    return $resource('/admin/json/orders', {},
      {
        query: { method: 'GET', params: { }, isArray: true },
        create: { method: 'POST', params: { } },
        save: { method: 'PUT', params: { } }
      });
  });

我想你是在提交表格。与其这样做,不如调用ajax将数据发送到服务器。我认为它会起作用。

我的问题是我打电话:

$scope.newOrder.$create(...)
这将导致$scope.newOrder对象被资源服务的create方法返回的JSON对象覆盖。这将清除所有表单字段,因为返回了一个错误对象

将此更改为:

Order.create($scope.newOrder, ...)
解决了这个问题

我还可以更改资源服务以返回非200 HTTP状态码,我相信我的对象不会被覆盖


希望这能帮助任何有类似问题的人。

编写代码,我也有一个表单,但没有明确的内容,所以可能是代码中有错误。看到这个答案吗?它说没有创建方法,只有保存。这对我来说太完美了!非常感谢。
$scope.newOrder.$create(...)
Order.create($scope.newOrder, ...)