フォームを送信したいのですが、最初にいくつかの非表示の入力を追加します。非表示の入力は ng-repeat で追加されます。最終的にはレンダリングされますが、submit イベントをトリガーする前に 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
};
私が理解しているように、これにはディレクティブのポストリンク関数を使用できます。私は正しいですか、それとも明らかな何かが欠けていますか?
編集: フォーム データを外部 Web サイトに投稿し、ブラウザーを応答にリダイレクトする必要があります。これは、サーバー上で HMAC を計算し、非表示の要素としてフォームに追加してから、支払いプロバイダーに投稿する支払い統合です。$http.post() の実装はそのリダイレクトを行わないようですが、代わりに応答を返します。