Mer om $resource

Angular $resource är en avancerad $http service specifikt för REST anrop. Genom att skapa en ny $resource för en viss REST route kan du sedan förenkla dina REST anrop ute i dina Angular controllers.

Skapa ny $resource för ”Cars”

  var CarResource = $resource(
    "/api/cars/:id", // REST route
    {
      id:"@id" // URL parameters, and their relation to object properties
    },
    { // supported methods (CRUD)
      create: { method: 'POST' },
      get: { method: 'GET', isArray: true },
      getById: { method: 'GET', isArray: false },
      update: { method: 'PUT' },
      destroy: { method: 'DELETE' }
    }
  );

Använd resource i din controller:

  // get all cars from DB
  $scope.allCars = CarResource.get();

  // get a specific car from DB
  $scope.aCar = CarResource.getById({id:X});

  // update a specific car from DB
  // updateData = {name: ...}
  $scope.updatedCar = CarResource.update({id:X}, updateData);

  // delete a specific car from DB
  $scope.deletedCar = CarResource.destroy({id:X);

Exemplen ovan använder sig inte av en callback funktion, utan förlitar sig på angular för att hantera problem med asynkronitet. Om du har ett behov av en callback kan du självklart använda det:

  // get all cars from DB, with callbacks
  $scope.allCars = CarResource.get(
    function(data) {}, // success callback
    function(data) {} // error callback
  );

  // get a specific car from DB
  $scope.aCar = CarResource.getById({id:X},
    function(data) {}, // success callback
    function(data) {} // error callback
  );

  // update a specific car from DB
  // updateData = {name: ...}
  $scope.updatedCar = CarResource.update({id:X}, updateData,
    function(data) {}, // success callback
    function(data) {} // error callback
  );

  // delete a specific car from DB
  $scope.deletedCar = CarResource.destroy({id:X}, 
    function(data) {}, // success callback
    function(data) {} // error callback
  );

Mer om Angular $resource.

0 votes