如何以下列格式

时间:2016-10-19 06:04:14

标签: javascript angularjs arguments

为了保持我的代码简洁和模块化,我使用以下方式处理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函数到这些回调函数。如果我将两个虚拟变量传递给回调函数,则它不起作用。 (我希望第一个参数被响应和第二个参数替换为我的参数)

1 个答案:

答案 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
}

希望对你有所帮助。