AngularJS synchronise automatiquement les données entre le serveur et le client

Il y a quelque chose dans les documents d’AngularJS que je n’arrive pas à trouver ou peut-être que je suis juste absent.

Je crée une application Web avec NodeJS et Express dans le back-end et j’essaie de comprendre comment elle peut interagir avec Angular dans le front-end. En particulier, j’aurai une API JSON pour Angular pour récupérer les informations. Je veux que le front-end soit toujours à jour.

Mes questions sont:

  • La fonctionnalité de liaison de données bidirectionnelle signifie-t-elle que Angular ($ resource ou $ http) récupère automatiquement les données du serveur toutes les n secondes?
  • Utilise-t-il naturellement des interrogations longues, des sondages courts ou des Websockets?
  • Avez-vous besoin de JQuery pour réaliser la synchronisation serveur-client ou est-ce que tout peut être fait avec Angular?
  • Devez-vous append du code supplémentaire pour que ce comportement se produise? Dois-je utiliser $ timeout?

Chaque exemple que je semble trouver implique que le client récupère les données une fois. Ne pas synchroniser les données avec le serveur.

La liaison bidirectionnelle dans AngularJS fait référence au modèle de données ($ scope) et à votre vue (directives). Par exemple, si les données changent dans votre modèle, la vue est automatiquement mise à jour. De même, si l’utilisateur modifie les données dans la vue, votre modèle sera automatiquement mis à jour.

L’interaction avec les services Web s’effectue via le module de service $ http. Donc, pour obtenir des données de votre API RESTful, vous feriez quelque chose comme:

$http.get('/someUrl').success(successCallback); 

Une documentation complète pour $ http se trouve sur le site AngularJS . Je pense que vous trouverez que c’est très similaire aux méthodes $ .ajax de jQuery. Vous pouvez facilement configurer $ http.get () pour une interrogation rapide avec le service angular $ timeout (essentiellement un wrapper pour setTimeout).

Pour les mises à jour en temps réel entre le client AngularJS et l’API du serveur, vous pouvez rechercher Socket.io . Il utilise node.js pour créer une connexion de socket en direct entre le navigateur et le serveur, et dispose de mécanismes de secours (flash, interrogation longue) pour les navigateurs plus anciens. Il y a un projet passe-partout sur GitHub qui montre comment configurer AngularJS avec Socket.io: https://github.com/btford/angular-socket-io-seed

Récapituler:

La fonctionnalité de liaison de données bidirectionnelle signifie-t-elle que Angular ($ resource ou $ http) récupère automatiquement les données du serveur toutes les n secondes?

Non, la liaison bidirectionnelle se fait entre les modèles angulars et les vues.

Utilise-t-il naturellement des interrogations longues, des sondages courts ou des Websockets?

Angular n’inclut aucun de ces éléments par défaut. Vous devez les configurer vous-même.

Avez-vous besoin de JQuery pour réaliser la synchronisation serveur-client ou est-ce que tout peut être fait avec Angular?

$ http est, au sens large, l’équivalent angular du $ .ajax de jQuery

Devez-vous append du code supplémentaire pour que ce comportement se produise? Dois-je utiliser $ timeout?

Utilisez $ timeout pour l’interrogation rapide ou lancez votre propre solution pour les longues interrogations et / ou les Websockets (voir le projet angular-socket-io-seed ).