【发布时间】:2015-10-07 14:07:00
【问题描述】:
我有一个问题,我的控制器似乎没有等待 http.get '.then'。我正在正确取回数据,但似乎在检索数据之前正在处理另一个函数。我浏览了很多帖子并尝试了这些帖子中提到的许多事情,但似乎没有帮助。我正在使用 PHP 来检索数据。
我有一个调用两个函数的 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
如您所见,它似乎在 fetch 函数完成之前处理函数 updateDetailsData。我认为 then 应该让处理等到 get 完成 - 承诺返回。
我需要根据 $scope 变量中的值在 updateDetailsData 函数中进行一些处理,但是当它到达那里时,它们是未定义的。
有人可以帮忙吗?我确定这是我缺少的一些东西,但我想我已经尝试了这些论坛上提供的所有解决方案,但最终仍然得到相同的结果。
【问题讨论】:
标签: javascript php angularjs get