从$ q获取api数据

时间:2017-07-05 05:23:28

标签: angularjs angularjs-directive

在我的控制器中,代码被编写为调用服务" regionService"

.controller('RegionController', function( $scope , regionService) {
    $scope.RegionData=[];
    var promise = regionService.getRegionDetail();
    promise.then(function(data){
        $scope.RegionData = data.data;
        $scope.RegionDataStatus = data.status;
        debugger;
        console.log($scope.RegionData);
    });
})

代码写为服务

.service('regionService',function($http , $q){
    debugger;
    var deferred =$q.defer();

    $http.get('/api/getRegion').then( function(data)
    {
        deferred.resolve(data);
    });
    this.getRegionDetail = function()
    {
        return deferred.promise;
    };
})

和api json数据来自AS

$scope.regionDetails =[
    {   "RegionName": "Asia",           "Regioncode": "ASIA"        },
    {   "RegionName": "South Asia",     "Regioncode": "SASI"        },
    {   "RegionName": "North Asia",     "Regioncode": "NASI"        },
    {   "RegionName": "West Asia",      "Regioncode": "WsASI"       },
    {   "RegionName": "EAst Asia",      "Regioncode": "EASI"        }
];

当我们使用Controller调用服务时,然后根据控制台上的deugger,我们从API获取数据,但是在加载页面之后" $ q" promise使用null数据覆盖Scope Varriable,因为他们称之为asynchronus $ q promises

0 个答案:

没有答案