加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS工厂http返回空

发布时间:2020-12-17 08:23:46 所属栏目:安全 来源:网络整理
导读:我第一次尝试AngularJS。我从使用工厂的http-get请求获取JSON数据,但在完成ajax请求之前,该对象将返回为空。 厂: myDemo.factory('photosFactory',function($http) { var photos = []; var factory = {}; factory.getPhotos = function() { $http({ url:
我第一次尝试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;
   });
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读