带有内联函数参数的AngularJS工厂

时间:2018-08-29 19:30:29

标签: javascript angularjs

我正在尝试修改以下answer

有可能做

app.factory('Facedetect',function($resource) {

  return {

    query: function(image_url) {
      return $resource('skyBiometry/facedetect/:_id', {_id:"@_id"}, { //changes here
             query: { method: 'GET', params: {imageUrl:image_url}, isArray: false }
      }).query();

    }
  }
});

我要进行的更改将是执行以下查询:

skyBiometry/facedetect/1?image_url="some_url.com"

我已经尝试了许多调用此新函数的方法,例如:

Facedetect.query("_id":1,"some_url.com")
Facedetect.query({"_id":1},"some_url.com")

但是似乎都不起作用。有没有办法做到这一点?还是我在滥用angularjs工厂?

1 个答案:

答案 0 :(得分:0)

我在这里只能看到的唯一问题是,您没有向查询函数提供参数来提供id参数。您应该这样做:

query: function(id, image_url) {
  return $resource('skyBiometry/facedetect/:_id', {_id:"@_id"}, { //changes here
         query: { method: 'GET', params: {_id: id, imageUrl: image_url}, isArray: false }
  }).query();

}

然后,像以前一样调用它:

Facedetect.query(1,"some_url.com")