我想提交表单,但首先添加一些隐藏的输入。隐藏的输入添加了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()的实现似乎不会进行重定向,而是返回响应。
答案 0 :(得分:0)
使用Angular应用程序时,您经常需要提交模型,而不是从表单元素中提取数据。即,使用ng-model指定$ scope模型对象属性,然后通过ng-submit提交该模型对象。在我看来,您已经可以访问$ scope中的order
,因为您正在尝试让关联的视图使用它。所以你可能不需要等待视图更新 - 只需在你的addValuesAndSubmit()函数中直接使用order
。