鍍金池/ 問(wèn)答/Python  HTML/ angularJS service傳參的一個(gè)問(wèn)題

angularJS service傳參的一個(gè)問(wèn)題

在sf上看到一個(gè)關(guān)于angularJS傳參的問(wèn)題,鏈接 在此

代碼如下:

var app = angular.module('demo.controllers', []);
//定義一些請(qǐng)求的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 {
        //這里傳入一個(gè)callback參數(shù) 用來(lái)獲取參數(shù)
        all_of_media: function(call_back_param){
            //發(fā)起一個(gè)簡(jiǎn)單地請(qǐng)求
            $http({
                url: Path.main_request_url+'/media.json' , 
                method: 'get', 
                headers: {
                    'Content-Type': undefined
                }
            }).then(function(data){
                //把請(qǐng)求到得資源傳遞給callback
                call_back_param(data);
            });
        }
    }

}]);

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

    //同樣傳遞一個(gè)callback進(jìn)去
    MediaResource.all_of_media(function(params){
        //然后綁定到$scope 
        $scope.results = params.data;

    });

});

其中,由call_back_param(data),可以直接params.data,不太明白,為什么可以這樣呢?

回答
編輯回答
眼雜

call_back_paramall_of_media的參數(shù),是一個(gè)函數(shù)
在請(qǐng)求完之后調(diào)用,并把請(qǐng)求到的數(shù)據(jù)傳給這個(gè)函數(shù)

call_back_param(data);

而你通過(guò),調(diào)用MediaResource.all_of_media,把

function(params){
        //然后綁定到$scope 
        $scope.results = params.data;

    }

傳給了它作為參數(shù),也就是上面定義的

call_back_param
2017年4月29日 07:45