У меня проблема, когда кажется, что мой контроллер не ждет на http.get '.then'. Я возвращаю данные правильно, но кажется, что другая функция обрабатывает до получения данных. Я прошел через многие сообщения и попробовал много вещей, упомянутых в этих сообщениях, но, похоже, это не помогает. Я использую PHP для извлечения данных.Угловая обработка не ждет на http.get. Then
У меня есть HTML-файл, который вызывает две функции (я пытался с одним, но когда это не сработало, я попытался разделить функциональность).
HTML звонков
<form editable-form name="editableForm" onaftersave="fetch();updateDetailsData()" >
функции контроллера
$scope.fetch = function() {
$http.get("api/checkSave/"+ JSON.stringify($scope.programDetails))
.then(function(data) {
$scope.okToSave = data.data.save;
$scope.missFields = data.data.fields;
console.log($scope.okToSave); // line #194
console.log($scope.missFields); // line #195
});
}
$scope.updateDetailsData = function(){
console.log($scope.okToSave); // line #202
}
Что отображается в консоли показывает:
undefined // line 202
false // line 194 - correct data
Object // line 195 - correct data
Как вы можете видеть, как представляется, обработки функции updateDetailsData до завершения функции выборки. Я подумал, что тогда нужно сделать обработку до тех пор, пока не закончится получение - обещание вернулось.
Мне нужно сделать некоторую обработку в функции updateDetailsData, основанной на значениях переменных $ scope, но когда она доберется туда, они не определены.
Может кто-нибудь помочь? Я уверен, что это что-то малое, что мне не хватает, но я думаю, что я пробовал практически все решения, представленные на этих форумах, и все равно получаю те же результаты.
Я получаю сообщение об ошибке, попробовав это высказывание «Не могу прочитать свойство», затем «неопределенного» ... похоже, что он обрабатывает выборку и updateDetailsData (и в правильном порядке из того, что я вижу).Ошибка находится на строке fetch(), затем (updateDetailsData). – user3861284
Вы добавили 'return' перед вызовом' $ http'? –
Простите, вы правы, я этого не видел ... да, это работает и показывает все в правильном порядке и только один раз. Благодаря! – user3861284