0

根据这个https://github.com/angular/angular.js/issues/1159

这应该有效,不是吗?

el.bind('keyup', function() {       
    var canceler = $q.defer();
    $http.post('/api', data, {timeout: canceler.promise}).success(success);
    canceler.resolve();
});

因为它根本不会触发请求,没有错误或任何东西,可能是因为它在绑定函数中吗?

4

1 回答 1

1

确实是因为它在非角度 bind() 事件中,scope.$apply()在 http 之后和 resolve 之前放置将修复它

https://github.com/angular/angular.js/issues/1159#issuecomment-20368490

el.bind('keyup', function() {       
    var canceler = $q.defer();
    $http.post('/api', data, {timeout: canceler.promise}).success(success);
    scope.$apply();
    canceler.resolve();
});
于 2013-07-02T19:16:06.673 回答