首先,我是AngularJS的小伙子 - 希望有人可以帮助这个。我真的不明白..
我有一个AngularJS应用程序,带有一个返回承诺的“服务”,一切运行良好,但问题是,如果我的应用程序在开始时处于脱机状态,然后上线,现在我希望服务承诺刷新。
如果我的应用程序在开始时处于联机状态,则一切正常。 但如果它处于脱机状态,并且稍后上线,则单击重新加载按钮 - 警报(“测试测试”);永远不会被执行:(
.service('webService', function ($http, $q, $timeout){
var webservice_url = "http://mywebservice_url";
var deferred = $q.defer();
var service = {};
service.refresh = function() {
$http.get(webservice_url+"?action=get_settings", {timeout: 2000})
.success(function(data) {
deferred.resolve(data);
})
.error(function(err) {
deferred.reject({'error': err});
});
return deferred.promise;
}
this.refresh = function() {
this.promise = service.refresh();
return this.promise;
}
this.promise = service.refresh();
})
.controller('NetworkCtrl', function($scope, $location, $timeout, webService) {
$scope.reloadClick = function(){
webService.refresh().then(function(data) {
alert("TEST TEST");
console.log(data);
});
}
})
答案 0 :(得分:1)
我不是100%肯定...因为我无法运行你的代码...但我认为将第三行移到service.refresh方法中,这应该让你更接近。