承诺的AngularJS服务 - 重新加载/刷新

时间:2014-07-30 07:12:37

标签: angularjs

首先,我是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);
        });

    }
})

1 个答案:

答案 0 :(得分:1)

我不是100%肯定...因为我无法运行你的代码...但我认为将第三行移到service.refresh方法中,这应该让你更接近。