angularJS service传参的一个问题

在sf上看到一个关于angularJS传参的问题,链接 在此


代码如下:


var app = angular.module('demo.controllers', []);

//定义一些请求的url

app.factory('Path' , function(){

    return {

        main_request_url: 'http://0.0.0.0:3001/apis/v1_1/'

    }

});


app.factory('MediaResource' , ['$http' , 'Path' , function($http , Path){


    return {

        //这里传入一个callback参数 用来获取参数

        all_of_media: function(call_back_param){

            //发起一个简单地请求

            $http({

                url: Path.main_request_url+'/media.json' , 

                method: 'get', 

                headers: {

                    'Content-Type': undefined

                }

            }).then(function(data){

                //把请求到得资源传递给callback

                call_back_param(data);

            });

        }

    }


}]);


app.controller('MainCtrl' , function($scope , MediaResource){


    //同样传递一个callback进去

    MediaResource.all_of_media(function(params){

        //然后绑定到$scope 

        $scope.results = params.data;


    });


});

其中,由call_back_param(data),可以直接params.data,不太明白,为什么可以这样呢?


慕雪6442864
浏览 300回答 1
1回答

江户川乱折腾

call_back_param是all_of_media的参数,是一个函数在请求完之后调用,并把请求到的数据传给这个函数call_back_param(data);而你通过,调用MediaResource.all_of_media,把function(params){        //然后绑定到$scope         $scope.results = params.data;    }传给了它作为参数,也就是上面定义的call_back_param
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript