1

POSTHTML フォームからデフォルトのアクション URLにデータを送信したいのですが、非表示の入力の 1 つがサービス呼び出しから返されたデータに依存しています。私が使用するとng-submit$scopeサービスコールが完了する前に更新されませんPOSTPOSTの後に HTML ページが表示されるため、Ajax を使用できませんPOST

フォームは次のようになります。

<form name="payment" role="form" class="form-inline" ng-show="!loading" method="POST" action="{{paymentUrl}}" ng-submit="createOrder()" novalidate>
   <input type="hidden" id="responseUrl" name="responseUrl" value="{{postPaymentUrl}}"/>
   <input type="hidden" id="orderNumber" name="orderNumber" value="{{orderNumber}}"/>
   <select class="form-control" id="paymentMethodBrand" name="paymentMethodBrand">
      <option ng-repeat="paymentMethod in paymentMethods | orderBy:'method'" value="{{paymentMethod.method}}">{{paymentMethod.method}}</option>
   </select>
   <button type="submit" class="btn btn-default" translate="BUY"></button>
</form>

フィールドの URLactionが正しく入力されます。

コントローラーのcreateOrder機能は次のとおりです。

$scope.createOrder = function () {
  Payment.start($scope.selectedProduct)
    .then(function (response) {
          $scope.orderNumber = response.data.orderNumber;
  });
};

問題は、実際のアクション URL を開く前に、非表示の入力 orderNumber が入力されないことです。したがって、投稿されるデータは正しくありません。

これにアプローチする方法について何か考えはありますか?angularjs 1.2.16 を使用しています。

4

1 に答える 1