当使用使用 xhr 而不是 $http 的第三方库时,在服务中使用承诺的正确方法是什么?
getSomething: function(user, repo) {
var deferred = $q.defer();
client.doSomething().promise().then(function(result) {
$rootScope.$apply(function() {
deferred.resolve(result);
});
}, function(err) {
$rootScope.$apply(function() {
deferred.reject(err);
});
});
return deferred.promise;
}
像这样使用 $rootScope 看起来很难看,而且不像 Angular 那样,但是将范围作为参数传递也是如此。有没有更好的方法来做到这一点?