Зададох този въпрос във форума на Google за AngularJS и не съм чувал за него досега. Може ли някой да ми помогне да разбера какво става тук?
Опитвам се периодично да опреснявам ресурс и изглежда, че не работи. Проследих го до факта, че обещанието е получено от $http услуга, но XHR заявката никога не се създава и задейства, когато методът се извиква в setTimeout. Въпреки това, ако направя същото без setTimeout, всичко изглежда работи добре.
Работещ JSFiddle: http://jsfiddle.net/hponnu/Z62QN/2/
window.root_module = angular.module("MyApp", ['ngResource']);
function MainController($scope, $resource) {
$scope.buttonClick = function () {
var res = $resource("http://www.google.com");
res.get({}, function (response) {
alert("response");
}, function (err) {
alert("error");
});
}
}
Повреден JSFiddle: http://jsfiddle.net/hponnu/H8aEt/10/
window.root_module = angular.module("MyApp", ['ngResource']);
window.count = 0;
function MainController($scope, $resource) {
$scope.buttonClick = function () {
setTimeout(function () {
alert("timeout: " + window.count);
var res = $resource("http://www.google.com");
res.get({},
function (response) {
alert("response: " + window.count);
window.count++;
}, function (err) {
alert("error: " + window.count);
window.count++;
});
}, 1000);
}
}
Както ясно ще видите в счупения jsfiddle, предупреждението за грешка не се задейства за първата заявка, освен ако събитие за щракване не се задейства от повторно щракване върху бутона. Започнах да забелязвам това от AngularJS 1.1.4
Някакви идеи/предложения?
PS: https://groups.google.com/forum/#!topic/angular/t28mazamT0E е връзката към нишката на Google групи.