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

来源:互联网 发布:淘宝美工遇到的问题 编辑:程序博客网 时间:2024/05/22 04:38

主要解决了封装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;
    }


自己针对此问题做的总结 有大佬有更好的想法也可以一起交流

原创粉丝点击