Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在angularjs中,使用promise创建http服务_Angularjs - Fatal编程技术网

在angularjs中,使用promise创建http服务

在angularjs中,使用promise创建http服务,angularjs,Angularjs,当我点击应用程序特定页面的url时,我想使用api调用检查是否允许加载该页面。如果是,则加载该页面,否则重定向到应用程序的不同页面。为此,我承诺使用http服务。在这里,http服务没有等待http响应 starter.service("verifywallet", ['$http', '$q', function($http, $q) { this.getdata = function() { var url = baseAPIUrl + "IsEnableWallet/";

当我点击应用程序特定页面的url时,我想使用api调用检查是否允许加载该页面。如果是,则加载该页面,否则重定向到应用程序的不同页面。为此,我承诺使用http服务。在这里,http服务没有等待http响应

    starter.service("verifywallet", ['$http', '$q', function($http, $q) {

this.getdata = function() {
    var url = baseAPIUrl + "IsEnableWallet/";
    var def = $q.defer();
    var IsEnableWallet = undefined;
    if (IsenableWallet) {
        $http({
            method: "GET",
            url: url
        }).then(function(response) {
            if (response.data.status.success == true) {
                var IsenableWallet = response.data.status.Isenable;
                def.resolve(IsenableWallet);
            } else {
                def.resolve(false);
            }
        })
        IsenableWallet = def.promise;
    }
    return $q.when(IsenableWallet);
}

this.verify = function() {
    return this.getdata();
}
}]);

首先,这个问题与您的服务不起作用有关,而与您提到的重定向有关,因此您可以尝试以下方法:

starter.service("verifyWallet", ['$http', function($http) {

    var self = this;
    var baseAPIUrl = 'api/rest/'; //in your question there is no value for baseAPIUrl

    self.getData = function() {
        var IsEnableWallet = null; 
        var promise = $http({
            method: "GET",
            url: baseAPIUrl + "IsEnableWallet/";
        })

        return promise;
    }

}]);
之后,您可以在调用函数getData时使用.then

此外,您不应将变量初始化为“未定义”,而应使用null,并小心使用cammelCase,即IsEnableWallet和IsEnableWallet,javascript是键敏感的