AngularJS工厂http返回空

前端之家收集整理的这篇文章主要介绍了AngularJS工厂http返回空前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我第一次尝试AngularJS。我从使用工厂的http-get请求获取JSON数据,但在完成ajax请求之前,该对象将返回为空。

厂:

myDemo.factory('photosFactory',function($http) {
    var photos = [];

    var factory = {};

    factory.getPhotos = function() {
        $http({
            url: 'content/test_data.json',method: 'GET'
        }).success(function(data,status,headers,config) {
            photos = data;
            return photos;
        });
    };
    return factory;
});

控制器:

controllers.AppCtrl = function($scope,$location,$http,photosFactory) {
    $scope.photos = [];
    init();
    function init() {
        $scope.photos = photosFactory.getPhotos();
    }
};

这是我想出来的。当控制器设置$ scope.photos时,该值为空,就像它在使用ajax响应填充之前返回照片数组一样。

您应该修改代码以返回承诺,并使用控制器中的值查看虚拟修改代码
myDemo.factory('photosFactory',function($http) {
 return{
    getPhotos : function() {
        return $http({
            url: 'content/test_data.json',method: 'GET'
        })
    }
 }
});

和控制器 –

controllers.AppCtrl = function($scope,photosFactory) {
    $scope.photos = [];
    photosFactory.getPhotos().success(function(data){
       $scope.photos=data;
   });
};

猜你在找的Angularjs相关文章