为了保持我的代码简洁和模块化,我使用以下方式处理HTTP调用。
我来自控制器:
function makeCall(){
Service.getDetails( url, obj).then(responseFn, errorFn);
}
在服务中我做:
this.getDetails = function(url, obj){
return $http.get(url);
}
然后在控制器中我有:
function responseFn(){
//response objct available here by deafult
}
function errorFn(){
//error objct available here by deafult
}
在这些函数中,我自动获得响应和错误对象。在一种情况下它很好,因为我只需要GET
的响应,但在另一种情况下我可以从不同的控制器调用相同的方法,并且我需要使用条件来操纵响应。
查询:如何传递参数,即' obj'从我原来的makeCall
函数到这些回调函数。如果我将两个虚拟变量传递给回调函数,则它不起作用。 (我希望第一个参数被响应和第二个参数替换为我的参数)
答案 0 :(得分:0)
您的一个选择是扩展您的返回对象,在这种情况下,您将通过控制器访问数据。
在您的服务中:
this.getDetails = function(url, obj){
this.myObjData = obj; // bind it to your returing object
return $http.get(url);
}
控制器中的:
function makeCall(){
Service.getDetails(url, obj).then(responseFn, errorFn); // respond parameter will attach by default, no need to bind it here
}
function responseFn(respond){
console.log(respond); // will attach by default
console.log(Service.myObjData); // access your data from here
}
希望对你有所帮助。