Cet article montre comment effectuer efficacement les opérations crud (créer, lire, mettre à jour, supprimer) dans les applications angularjs à l'aide du service $resource
. Il simplifie l'interaction avec les backends reposants.
Concepts clés:
$resource
: $resource
rationalise les opérations CRUD en fournissant une interface pratique pour interagir avec les API reposantes. angular-resource.js
et de déclarer une dépendance sur le module ngResource
. $resource
Méthodes: utilise cinq méthodes par défaut (get()
, query()
, save()
, remove()
, delete()
) pour interagir avec les critères d'évaluation reposants. $resource
: permet la personnalisation en ajoutant des méthodes personnalisées ou en modifiant les configurations comme les paramètres d'URL et les transformations de données. Prérequis:
Le fichier angular-resource.js
(disponible à partir de CDN comme CDNJS) doit être inclus dans votre HTML, et votre module AngularJS doit déclarer une dépendance à ngResource
:
angular.module('myApp', ['ngResource']);
PRENDRE:
$resource
s'attend à un backend reposant avec des points de terminaison structurés comme ceci:
L'exemple utilise Node.js, Express et MongoDB pour le backend, mais toute API RESTful fonctionnera.
comment $resource
fonctionne:
$resource
dans votre contrôleur ou service. $resource()
avec l'URL de point de terminaison de repos. Cela renvoie une classe de ressources. angular.module('myApp.services').factory('Entry', function($resource) { return $resource('/api/entries/:id'); });
Utiliser des méthodes par défaut: La classe de ressources fournit:
get()
: récupère une seule ressource. query()
: récupère une collection de ressources. save()
: Crée une nouvelle ressource (post). remove()
/ delete()
: supprime une ressource. Exemple Utilisation:
angular.module('myApp.controllers').controller('ResourceController', function($scope, Entry) { Entry.get({id: $scope.id}, function(entry) { console.log(entry); }); Entry.query(function(entries) { console.log(entries); }); $scope.entry = new Entry(); $scope.entry.data = 'some data'; $scope.entry.$save(function() { /* data saved */ }); });
Méthodes d'instance: Méthodes de non-gel ($save()
, $delete()
, $remove()
) sont disponibles sur les instances créées avec new Entry()
.
Fonctionnement de mise à jour: Pour effectuer des mises à jour (put), ajoutez une méthode personnalisée update
:
angular.module('myApp', ['ngResource']);
$resource()
permet une personnalisation supplémentaire, telle que stripTrailingSlashes
. Création d'une application cinématographique (exemple):
L'article détaille la création d'une application de film complète en utilisant $resource
, y compris les contrôleurs, les vues et le routage (en utilisant ui-router
). L'API backend est compatible CORS et accessible à http://movieapp-sitepointdemos.rhcloud.com/api/movies
. L'exemple couvre la création, la lecture, la mise à jour et la suppression des entrées de film.
Questions fréquemment posées (FAQ):
L'article se termine par une section FAQ complète concernant les questions courantes sur l'utilisation $resource
pour les opérations CRUD, y compris la gestion des erreurs, la personnalisation, les tests et la compatibilité avec d'autres modules angulaires. Il clarifie également son utilisation avec des API non redimencables et différentes versions d'AngularJs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!