html 양식의 데이터를 기본 동작 URL로 POST
데이터로 보내고 싶지만 하나의 숨겨진 입력은 서비스 호출에서 반환 된 데이터에 따라 다릅니다. ng-submit
을 사용할 때 은 서비스 호출 후 POST
이 완료되기 전에 업데이트되지 않습니다. POST
뒤에 HTML 페이지가 있기 때문에 Ajax POST
을 사용할 수 없습니다.angularjs 양식 서비스 후 조치
양식은 다음과 같습니다
<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>
이 action
필드에있는 URL이 올바르게 채워집니다.
컨트롤러의 createOrder
기능이 있습니다 :
$scope.createOrder = function() {
Payment.start($scope.selectedProduct)
.then(function (response) {
$scope.orderNumber = response.data.orderNumber;
});
};
문제는 숨겨진 입력 주문 번호는 실제 액션 URL을 열기 전에 작성되지 않는다는 것입니다. 따라서 게시 된 데이터가 올바르지 않습니다.
이 문제를 해결하는 방법에 대한 의견이 있으십니까? angularjs 1.2.16을 사용하고 있습니다.