我想将POST
html 表单中的数据传输到默认操作 url,但一个隐藏的输入取决于从服务调用返回的数据。当我ng-submit
在完成$scope
之前使用服务调用后不会更新POST
。我不能使用 Ajax POST
,因为在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>
该action
字段中的 url 被正确填写。
控制器中的createOrder
功能是这样的:
$scope.createOrder = function () {
Payment.start($scope.selectedProduct)
.then(function (response) {
$scope.orderNumber = response.data.orderNumber;
});
};
问题是隐藏的输入 orderNumber 在打开实际操作 URL 之前没有被填充。因此,发布的数据不正确。
关于如何解决这个问题的任何想法?我正在使用 angularjs 1.2.16。