AngularJS中的服务

AngularJS中的服务,angularjs,angularjs-service,Angularjs,Angularjs Service,我正在学习AngularJS,我对服务有点问题。官方教程提供了一个使用REST的自定义服务示例: angular.module('phonecatServices', ['ngResource']). factory('Phone', function($resource){ return $resource('phones/:phoneId.json', {}, { query: {method:'GET', params:{phoneId:'p

我正在学习AngularJS,我对服务有点问题。官方教程提供了一个使用REST的自定义服务示例:

angular.module('phonecatServices', ['ngResource']).
    factory('Phone', function($resource){
        return $resource('phones/:phoneId.json', {}, {
            query: {method:'GET', params:{phoneId:'phones'}, isArray:true}
        });
    });
因此,我用不同的名称/url编写了相同的代码,并且可以正常工作

我想向该服务传递一个参数(url中的id)。 我尝试在其中使用$routeParams,但没有成功。最后,我找到了另一种方法来声明同一服务中的多个函数,因此我提出:

factory('Article', function($resource) {
    return {
        getList: function(categoryId) {
                return $resource('http://...', {
                    query: {method:'GET', isArray:true}
                });
            }
        }
    })
但是对于REST调用来说,它不起作用(例如,返回'Hello'就可以了)

你知道怎么做吗


谢谢大家!

听起来好像您没有将参数传递到查询函数中

angular.module('Article', ['ngResource']).
    factory('Phone', function($resource){
        return return $resource('http://.../:articleId', {
                query: {method:'GET', isArray:true}
            });
    });
});
然后在你的控制器里

Article.query({
  articleId : someVar
});

谢谢你的回答,很有效。我只是想知道,在AngularJS中,一个具有多个功能的服务是否是好方法?看看文档页面,在您的资源设置中,您可以提供自定义功能(在信用卡示例中收费),假设我遵循您的问题。