【问题标题】:How to pass query param to parse-rest-api from angularjs $http service?如何从 angularjs $http 服务将查询参数传递给 parse-rest-api?
【发布时间】:2014-11-02 05:11:45
【问题描述】:

我正在学习 AngularJS,我使用 sublime-text 作为编辑器和 parse.com-rest-api 作为后端层来设置开发环境。

我遇到了一个场景,我必须根据属性获取数据。

以下来自 angularjs 服务层的代码已从表 'filim' 中获取所有记录。

var config = {

                    headers: {
                        'X-Parse-Application-Id': 'bNtp8FUfr0s1UsAwJr7MFjabCI31HytIuC3gCaJ2',
                        'X-Parse-REST-API-Key': 'g18cAoH7QkrBZenPqH0pynMKsn6pj4MyfDyIy6X1',
                    }
                };

        return {
            getFilims: function(callback) {
                var filims;

                var resp = $http.get('https://api.parse.com/1/classes/filim', config).success(function(data) {

                    callback(data.results);
                });
            }
        }

我已经修改了上面的 url 来发送查询参数来过滤输出,但是没有用。 我参考 parse.com api doc [https://www.parse.com/docs/rest#queries] 来修改 url 以发送查询 - 参数。

修改后的代码如下,

var params = {"where": {"status" : "CLOSED" } }

        var resp = $http.get('https://api.parse.com/1/classes/filim?%s' % params, config).success(function(data) {

            callback(data.results);
        });

但这不起作用。

这是使用查询参数的方式吗?

问候 阿吉尔

【问题讨论】:

标签: angularjs rest parse-platform


【解决方案1】:

'https://api.parse.com/1/classes/filim?%s' % params

这是一种用于插入字符串的 python 模式,在 javascript 中不起作用。

在javascript中组合字符串的正确方法是:

'https://api.parse.com/1/classes/filim?' + params

即使如此,这也可能行不通,因为你最终会得到类似的结果:

'https://api.parse.com/1/classes/filim?[Object object]

你需要为 parse.com 做的是对查询进行 JSON 编码,所以试试这个:

var whereQuery = {"status" : "CLOSED"};
var url = 'https://api.parse.com/1/classes/filim?where=' + encodeURI(JSON.stringify(whereQuery));

var resp = $http.get(url, config).success(function(data) {
  callback(data.results);
});

【讨论】:

  • 谢谢'theJoeBiz'。很好解释。我试过这个并且它的工作:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 2016-07-06
  • 2013-09-25
相关资源
最近更新 更多