我在寫一個可以從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