Итак, скажем, я отправляю эту форму на веб-службу.Значение ввода формы формы из данных обещания
<form name="myForm" id="myForm" method="post" action="https://servicelink.....etc" accept-charset="utf-8">
<input type="hidden" name="accepturl" value="{{$ctrl.accepturl}}" ng-model="$ctrl.accepturl">
<input type="hidden" name="callbackurl" value="{{$ctrl.callbackurl}}" ng-model="$ctrl.callbackurl">
<input type="hidden" name="orderid" value="{{$ctrl.orderid}}" ng-model="$ctrl.orderid">
</form>
Вот мой Угловая контроллер: (я использую AngularJS 1.5.8 с компонентами)
function controller(someservice) {
var ctrl = this;
ctrl.accepturl = $window.location.href;
ctrl.callbackurl = "https://........";
ctrl.placeOrder = function() {
someservice.placeOrder(ctrl.amount).then(onOrderInitiation, onOrderInitiationError);
}; //$http.post call is made there
function onOrderInitiation(data) {
ctrl.orderid = data;
// I tried to set the input value by javascript as well with no success
// document.getElementsByName('orderid').value = data;
document.getElementById("flexwinSubmit").submit();
}
}
здесь является служба, где $ http.post сделано:
this.placeOrder = function(amount){
return $http.post("/rest/.........)
.then(function(response){
return response.data.orderId;
});
};
Поэтому я должен обновить значение ввода заказа в моем html из данных функции обещания (onOrderInitiation), а затем отправить форму. Но я никак не мог его обновить. Однако ctrl.orderid установлен правильно (я проверял это в журналах.)
Когда я попытался установить его как способ JavaScript, значение изменилось правильно - когда i console.log его. Но при отправке формы значение не будет установлено.
document.getElementsByName('orderid').value = data;
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an -асинхронный вызов) – baao
вы должны использовать ng-значение не просто значение, то есть ng-value = "ctrl.orderid" – GraveyardQueen
@GraveyardQueen это не имеет никакого значения :(Интересная вещь, когда я проверяю ее в браузере так значение устанавливается, но не при отправке формы! – Hazu