我在写一个可以从JASON文件中调用DATA的代码。 我有一个异步的问题,并看到很多关于同一问题的帖子。等到所有数据加载完毕。 AngularJS
我写了一些代码,我想它会解决我的问题。然而,它似乎仍然没有加载数据。
我会更具体的与我的问题。我用下面的诺言方法。我认为在所有数据完全加载之前不应该返回“问题”。显然,'问题',里面什么都没有,会返回到我的页面。
我的承诺方法是否正确?如果不是,我该如何解决这个问题。 有人可以帮我吗?
(function(){
angular
.module("GrammarQuiz")
.factory("DataService", DataFactory);
function DataFactory($log, $q, $http, $timeout){
var vm = this
var questions = getData() ;
vm.getData = getData;
function getData(){
var defer = $q.defer()
$http.get('api/data1.json')
.success(function(res){
questions = res;
$log.log('success');
defer.resolve(res);
})
.error(function(err, status){
$log.log('fail');
defer.reject(err);
})
return defer.promise;
}
$log.log('check');
$log.log(questions[0]);
return questions;
}
})();
的[可能的复制如何返回从一个异步响应打电话?](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call) –
是的,我看过这个帖子,但仍然无法确定在我的代码中解决问题的方法。我不确定是什么问题。 :( –
这是在这里的竞争条件城市,你故意拖延某些东西的http请求,以便尝试记录它,或者在成功函数中调用函数,或者使用承诺 – ryanlutgen