Search code examples
angularjsnode.jsexpressangular-resource

Get Data on conditions by $resource angualrjs


I am using $resource service for my crud operations now i want to get data on a condition like get appointments whose starting date is today. I am fetching all data by

vm.appointments = AppointmentsService.query();

and my service code is

    (function () {
  'use strict';

  angular
    .module('appointments')
    .factory('AppointmentsService', AppointmentsService);

  AppointmentsService.$inject = ['$resource'];

  function AppointmentsService($resource) {
    return $resource('api/appointments/:appointmentId', {
      appointmentId: '@_id'
    }, {
      update: {
        method: 'PUT'
      }
    });
  }
})();

Now can i give condition in this code blockAppointmentsService.query({condition}); or change my service in node rest API. If yes, then what will be my AppointmentsService.query call


Solution

  • For your different url path, you can create new method like below or you can pass startDate as a query string

    Controller :

    For Path Param

     vm.appointments = AppointmentsService.searchByDate({date:'03/30/2016'});
    

    For Query Param

    vm.appointments = AppointmentsService.searchByDate({StartDate:'03/01/2016',EndDate:'03/30/2016'});
    

    Service:

     function AppointmentsService($resource) {
        return $resource('api/appointments/:appointmentId', {
          appointmentId: '@_id'
        }, {
          update: {
            method: 'PUT'
          },
          // For Path Param
          searchByDate :{
            method : 'GET',
            url : 'your url/:date'
          },
         // For Query Param
          searchByDate :{
            method : 'GET',
            url : 'your url/:startDate/:endDate' ,
            params : { startDate : '@StartDate', endDate : '@EndDate' } 
          }
        });
      }