在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,不太明白,为什么可以这样呢?
call_back_param
是all_of_media
的参数,是一个函数在请求完之后调用,并把请求到的数据传给这个函数
而你通过,调用
MediaResource.all_of_media
,把传给了它作为参数,也就是上面定义的