我有一個我從哪裏挑選查克諾里斯笑話的網址。基本上,爲了獲得100個笑話,我打了100次URL並將結果存儲在一個數組中,並重復執行。非常直截了當。我在Google Chrome上執行相同的代碼時出現問題。它只是獲取第一個數據的數據,然後不會訪問URL並用第一個數據填充整個數組。我無法得到爲什麼相同的代碼有兩種不同的行爲。請幫忙。它在Firefox中完美工作,但不在谷歌瀏覽器中。 你可以在Fiddle找到代碼。嘗試在Chrome和Firefox上運行相同的代碼,您會發現其中的差異。請幫忙。帶有Promise的Angular代碼適用於Firefox,但不適用於Chrome?
的代碼如下: -
var app=angular.module('JokeApp',[]);
/**
* Created by roger on 25/2/14.
*/
app.controller('JokeCtrl',['$scope','$http','$q',function($scope,$http,$q){
$scope.pageTitle="JokeApp";
$scope.data={"jokeList":[]};
$scope.services={};
$scope.processing={};
$scope.processBusy=true;
$scope.dataTemplate=function(id,joke,category){
return {
"id":id,
"joke":joke,
"category":category
};
};
$scope.getJoke = function(callback) {
return $http.get("http://api.icndb.com/jokes/random?limitTo=[nerdy]").success(
function(data) {
return callback($scope.dataTemplate(data.value.id,data.value.joke,data.value.categories[0]));
}
);
};
$scope.getJokes = function() {
var prom = [];
for(var i=0;i<10;i++){
prom.push($scope.getJoke(function(value){
$scope.data.jokeList.push(value);
}));
}
$q.all(prom).then(function() {
console.log("DONE!!!");
console.log($scope.data.jokeList);
$scope.processBusy=false;
});
};
$scope.getJokes();
}]);
和HTML是這樣
偉大的人! :)是啊,它的緩慢......但我需要這個.. :) –
有沒有人知道是否有一個內置的角度攔截器來做到這一點?我看到有人在這裏做了他們自己的攔截器:http://stackoverflow.com/questions/16971831/better-way-to-prevent-ie-cache-in-angularjs看到答案由dillip pattnaik – jCuga
你的隨機查克諾里斯笑話fetcher是實際上很酷 - 可能必須爲以後的jsfiddle添加書籤 – jCuga