您的位置:首页 > Web前端 > AngularJS

angularJS中利用promise,$q进行ajax数据定向缓存

2017-10-19 11:55 393 查看
主要解决了封装ajax函数带来的数据处理不便的问题

记录便于以后copy  关键代码如下

首先依赖注入$q,

//调用了封装ajax函数的外层方法,将ajax函数中的返回的data存入$scope.schoolInfoList

$scope.userCollegeInfo=function(){

$scope.schoolInfoList=$scope.getData('/account_user/college')
$scope.schoolInfoList.then(function(data){
$scope.schoolInfoList=data.data
})
}

//封装的ajax函数  主要功能是对接数据,缓存数据

//封装GET方法

$scope.getData=function(url){
var deferred=$q.defer();
        var promise=deferred.promise;
        $http({
          method: 'GET',
                url: apiUrl+url,
                dataType:'json',
                async:false,
               
headers :{'client_id' : clientId,'access_token':$scope.token,'accountid':$scope.accountid},
        }).then(function successCallback(data) {
                   
console.log(data)
                   
deferred.resolve(data);
                   
$scope.newData=data.data
                }, function errorCallback(data) {
               
console.log('服务器连接失败')
                    deferred.reject()
            });
       
return promise;
    }

自己针对此问题做的总结 有大佬有更好的想法也可以一起交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: