Angular新手在这里。我想知道是否可以使用 $ http 服务在任何准备好的状态/状态更改时调用函数,而不仅仅是成功/失败。 在代码方面,它将是以下 JS 代码的等效角度代码:
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function() {
if (xhr.readyState < 4 && xhr.status != 200)
alert('Loading');
}
xhr.open...
xhr.send...
答案 0 :(得分:1)
该事件不再在1.3+中使用,并且不会暴露,仅在1.2中使用状态4.
做这样的事情的唯一方法(如果你真的想要)将是替换或装饰$ httpBackend ...
请参阅http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.js
中的createHttpBackend()
答案 1 :(得分:0)
我成功使用的另一个选择是在$ http调用之后调用$ scope。$ apply():
// using $http
var promise = $http.get(url).then(success, ...);
// without $http
$.ajax({
url: url,
success: function() {
success();
$scope.$apply(); // if you'd used $http, this would be unnecessary
},
...
});