如何将查询参数传递给angularjs $ http服务的parse-rest-api?

时间:2014-11-01 20:24:21

标签: angularjs rest parse-platform

我正在学习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来发送query-parameter来过滤输出,但是没有用。 我引用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);
        });

但这不起作用。

这是使用query-parameter的方法吗?

此致 AJIL

1 个答案:

答案 0 :(得分: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);
});