作为AngularJS中的函数访问$ resource param中的params值

时间:2014-09-23 03:57:24

标签: javascript angularjs angularjs-resource

我需要连接的API是使用oData;我需要在发送请求之前格式化请求参数。

所以我发现我可以使用函数作为参数,不确定它是最好的方法... 我需要访问其他参数值才能构建我的查询。我可以这样做吗?

在下面的示例中,目标是获取如下查询:

值:

  • fields = ['用户名','电子邮件']
  • value =' john'

预期结果:

?$filter=contains(Username, 'john') or contains(Email, 'john')

代码:

return $resource(oDataURL, {}, {
  search: {
    method: 'GET',
    isArray: true,
    params: {
      fields: '',
      value: '',
      searchString: function () {
        var s = '';
        // Here! Needs to access params.fields
        _.map(params.fields, function (f, k) {
          if (k == fields.length - 1) {
            s += ' or ';
          }
          return s += 'contains(:' + f + ', \':' + value + '\')';
        });
      }
    },
    url: oDataURL + '?$filter=:searchString'
  },

0 个答案:

没有答案