2016-03-30 6 views
0

Ich benutze $ Ressource Service für meine Crud-Operationen jetzt möchte ich Daten über eine Bedingung wie Termine bekommen, deren Startdatum ist heute. Ich Abrufen aller Daten von

vm.appointments = AppointmentsService.query(); 

und mein Service-Code ist

(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' 
     } 
    }); 
    } 
})(); 

Jetzt kann ich in diesem Codeblock geben Bedingung AppointmentsService.query({condition}); oder meinen Dienst in Knoten Rest API ändern. Wenn ja, was wird dann mein AppointmentsService.query Anruf

+0

Sie startdate als Query-String und Update passieren kann Dein Servercode entsprechend. –

Antwort

1

Für die verschiedenen URL-Pfad sein, können Sie wie unten neue Methode erstellen oder Sie können startdate als Query-String

-Controller passieren:

Für Weg Param

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

für die Suche nach Param

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

Dienst:

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' } 
     } 
    }); 
    } 
1

Aktualisieren Sie Ihren Service-Code ...

(function() { 
    'use strict'; 

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

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

    function AppointmentsService($resource) { 
    var service = { 
     get: $resource('api/appointments/:appointmentId',{ 
      appointmentId: '@_id' 
     },{ 
      method:'GET' 
     }), 
     update: $resource('api/appointments/:appointmentId',{ 
      appointmentId: '@_id' 
     },{ 
      method:'PUT' 
     }), 
     query:$resource('api/appointments',{ 
      method:'GET', 
      isArray:true 
     }) 
     queryByStartDate:$resource('api/appointments/:startDate',{ 
      startDate: '@_startDate' 
     },{ 
      method:'GET', 
      isArray:true 
     }) 
    } 
    return service; 
    } 
})(); 

Und rufen queryByStartDate innen Controller

var startDate = new Date(); //you can use $filter to format date 
$scope.appointments = AppointmentsService.queryByStartDate({startDate:startDate});