如何在AngularJS中的submssion之前更新表单隐藏数据?

时间:2016-02-08 15:06:15

标签: angularjs ng-submit

我的模型变量已绑定到表单中的某些隐藏输入字段。

当用户点击提交按钮时,我尝试通过更新相应的绑定模型变量来更新这些字段,但它们不会更改(我注意到在服务器上转储请求时,我总是收到旧数据),我注意到当我使用普通文本输入而不是隐藏输入时,每件事情都可以正常工作

这是我的代码:

表格

<form name="bla bla" action="bla bla" method="post" ng-submit="updateForm()"> 
  <input type="hidden" name="token" ng-model= "extra.token" />
  <input type="hidden" name="filters" ng-model="extra.filters" />
  <button type="submit">
    submit form
  </button>
</form>

控制器

var app = angular.module(... // bla bla

app.controller('MyController', ['$scope', ctrlDef]);

function ctrlDef($scope) {
  $scope.extra = {};
  $scope.extra.token = '';
  $scope.extra.filters = '';

  $scope.updateForm = function() {
      $scope.extra.token = 'test1';
      $scope.extra.filters = 'test2';
  };
}

1 个答案:

答案 0 :(得分:1)

如果您使用标准HTML表单属性(SELECT e.`Manager_id` as manager_id, (SELECT sum(s.`Emp_Salary`) FROM salary as s WHERE s.`Manager_id` = e.`Manager_id`) - sum(e.new_policy_deductions) as net_salary FROM employee as e GROUP BY e.`Manager_id` method等),我认为ngSubmit将在POST请求之前可靠地运行。更好的想法是使用$html service发送您的请求。这也有异步的好处,所以你不应该像现在这样需要一个隐藏的iframe。

action