是否可以将参数传递给返回dataReturn的$ http工厂?

时间:2016-10-05 08:35:50

标签: angularjs

这里有一个设置让我调用php脚本从外部API获取数据。我做的是建立一个这样的工厂:

app.factory('loadAPI', function ($http) {
  var doRequest = function() {
    return $http({
      method: 'JSON',
      url: 'api.php'
    });
  };
  return {
    dataReturn: function() { return doRequest(); }
  };
});

然后在我的.controller内我使用以下脚本来处理数据:

loadAPI.dataReturn().success(function(data, status){

...

}

现在由于外部API提供了许多接口,我喜欢将参数传递给.factory,因此它可以处理多种不同类型的接口(而不是创建多个.factory来处理它们。)

这是我的概念:

loadAPI.dataReturn(parameter).success(function(data, status){

...

}

app.factory('loadAPI', function ($http) {
  var doRequest = function(parameter) {
    return $http({
      method: 'JSON',
      url: 'api.php?p=' + parameter
    });
  };
  return {
    dataReturn: function(parameter) { return doRequest(parameter); }
  };
});

它不起作用。

1 个答案:

答案 0 :(得分:1)

这个概念会起作用。我试过了,它正确地返回数据。可能有更简单的方法将参数传递给$http。我怀疑你的api.php没有正确读取参数有问题。