How can I pass params with AngularJS $resource.query?

angularjs, javascript

Solution

Below is the sample code:

angular.module('phonecatServices', ['ngResource']).
    factory('Phone', function($resource){
  return $resource('phones/:phoneId.json', {}, {
    query: {method:'GET', params:{phoneId:'phones'}, isArray:true}
  });
});

Problem

At the moment, the url `localhost/view/titles` will use the route, controller and service below, and the server will return a list of all title objects. How do I extend the service to allow for additional query params, such as a result limit etc? ``` // main app module with route var app = angular.module('app', ['ngResource']). config(function ($routeProvider, $locationProvider) { $routeProvider.when( '/view/:obj/:limit', { templateUrl: '/static/templates/titles.html', controller: 'titlesController' } )}) // list service var listService = app.factory('listService', function ($q, $resource) { return { getList: function (obj) { var deferred = $q.defer(); $resource('/api/view/' + obj).query( function (response) { console.log('good') deferred.resolve(response); } , function (response) { console.log('bad ' + response.status) deferred.reject(response); } ) return deferred.promise; } } } ) // controller var titlesController = bang.controller('titlesController', function($scope, listService, $routeParams){ $scope.titles = listService.getList($routeParams.obj); }) ```

Original source