提交表单:断言DOM已完全呈现

时间:2013-01-28 18:50:40

标签: angularjs

我想提交表单,但首先添加一些隐藏的输入。隐藏的输入添加了ng-repeat。最终它们将被渲染,但是如何在触发提交事件之前确定DOM已经更新?

部分:

<form ng-submit="addValuesAndSubmit()">
  <input type="hidden" name="{{name}}" value="{{value}}" ng-repeat="(name, value) in order">
  <input type="submit">
</form>

控制器:

$scope.addValuesAndSubmit = function() {
  $scope.order = { param1: 1, param2: 2 };
  // TODO: wait until form is rendered
  // there should be two <input type="hidden"> now
  // trigger submit action
};

据我了解,指令的后连接功能可用于此目的。我是对的还是我错过了一些明显的东西?

编辑:表单数据需要发布到外部网站,将浏览器重定向到响应。这是一个支付集成,我在服务器上计算HMAC,将其作为隐藏元素添加到表单,然后将其发布到支付提供商。 $ http.post()的实现似乎不会进行重定向,而是返回响应。

1 个答案:

答案 0 :(得分:0)

使用Angular应用程序时,您经常需要提交模型,而不是从表单元素中提取数据。即,使用ng-model指定$ scope模型对象属性,然后通过ng-submit提交该模型对象。在我看来,您已经可以访问$ scope中的order,因为您正在尝试让关联的视图使用它。所以你可能不需要等待视图更新 - 只需在你的addValuesAndSubmit()函数中直接使用order