Restangular服务getList('pit')发送参数

时间:2015-02-13 12:02:04

标签: javascript angularjs restangular

我有一个像我这样创建的restangular服务:

(function() {
    'use strict';

    angular
        .module("myapp")
        .factory('stats.api.service', StatsApi);

    StatsApi.$inject = ['Restangular'];

    function StatsApi(Restangular) {
        return Restangular.service('stats');
    }
}());

我将此工厂添加到api的服务中,并尝试从中调用它。他们中的大多数都有效,但某个人没有。

例如,此调用有效。 (其中id是一个包含我想要的ID的字符串。

api.getList().then(function(data) {
    console.log(data);
});

以上调用使用以下网址:http://localhost/myapp/api/stats

这是我期望的网址。

现在,如果我使用此代码:

api.getList('pit').then(function(data) {
    console.log(data);
});

它会调用http://localhost/myapp/api/stats?0=p&1=i&2=t

现在我可能只是遗漏了一些东西,但应该拨打http://localhost/myapp/api/stats/pit,对吧?

关于我做错了什么以及如何解决它的任何想法?

编辑:

我想出了如何调用我想要的网址,但我仍然觉得它并不遵循文档所说的内容。要致电http://localhost/myapp/api/stats/pit,我必须使用

api.one('pit').getList().then(function(data) {
    console.log(data);
});

1 个答案:

答案 0 :(得分:0)

如果您查看github repo of restangular处的方法说明,您会看到集合的getList 需要queryParams as first paramter

  

getList([queryParams,headers]):再次获取自己(记住这是一个   集合)

另一方面元素的获取列表需要subElement as first parameter

  

getList(subElement,[queryParams,headers]):获取嵌套资源。   subElement是必需的。它是一个带有嵌套名称的字符串   资源(和URL)。例如建筑物

我个人想要使用Restangular的service功能,但在很多情况下它迫使我在许多事情上做额外的工作。我的建议是,使用one()all()来构建网址。