AngularJS Automatiquement la Synchronisation des Données entre le Serveur et le Client
Il y a quelque chose dans le AngularJS docs que je n'arrive pas à trouver ou peut-être que je suis juste en manque.
Je suis de la création d'une application web avec NodeJS et de l'Exprimer dans le back-end et j'essaie de comprendre comment il peut interagir avec Angulaire de l'extrémité avant. En particulier, je vais avoir une API JSON Angulaire pour aller chercher de l'information. Je veux de l'extrémité avant d'être toujours à jour.
Mes questions sont:
- Ne les deux sens de la liaison de données fonctionnalité moyenne Angulaire ($ressource ou
$http) récupère automatiquement les données à partir du serveur à chaque n
secondes? - N'utilisent naturellement le long du scrutin, d'interrogation court ou websockets?
- Avez-vous besoin de JQuery pour atteindre le client-serveur de synchronisation ou peut tout faire
Angulaire? - Avez-vous à ajouter un code supplémentaire pour faire de ce comportement
arriver? Je dois utiliser $timeout?
Chaque exemple, j'ai l'air de trouver implique que le client de récupérer les données une seule fois. Pas de synchronisation des données avec le serveur.
- Angulaire n'est pas gérer client/serveur synchornization. Si vous souhaitez interroger la fin de retour sur une base régulière, vous devez écrire vous-même. Vous pouvez utiliser $timeout pour des raisons de commodité (de sorte que les mises à jour se produisent à l'intérieur de l'empreinte de la boucle), mais vous devez le faire de la portée-mise à jour dans votre propre code.
Vous devez vous connecter pour publier un commentaire.
Liaison bidirectionnelle dans AngularJS se réfère au modèle de données ($champ) et la vue (les directives). Par exemple, si les données changent dans votre modèle, la vue sera automatiquement mise à jour. De même, si l'utilisateur modifie les données dans la vue, votre modèle sera automatiquement mise à jour.
Interagissent avec les services web est par le biais de l' $http module de service. Donc, pour obtenir des données à partir de votre API RESTful, vous feriez quelque chose comme:
Documentation complète pour $http est sur le AngularJS site. Je pense que vous trouverez qu'il est très similaire à du jQuery $.méthodes ajax. Vous permettre de configurer facilement $http.get() pour court-interrogation angulaire de $timeout de service (en fait un wrapper pour setTimeout).
En temps réel des mises à jour entre le AngularJS client et le serveur de l'API, vous voudrez peut-être regarder dans Socket.io. Il utilise node.js pour créer un live socket de connexion entre le navigateur et le serveur, et dispose de mécanismes de secours (flash, le long du scrutin) pour les anciens navigateurs. Il est un passe-partout de projet sur GitHub qui montre comment mettre en place AngularJS avec la Prise.io:
https://github.com/btford/angular-socket-io-seed
Pour Récapituler:
Pas, dans les deux sens de la liaison entre Angulaire des modèles et des points de vue.
Angulaire ne comprend aucune de ces par défaut. Vous devez définir vous-même.
$http est, dans un sens large, l'angle équivalent de jQuery $.ajax
Utiliser $timeout à court d'interrogation ou de rouler votre propre solution à long-polling et/ou les websockets (voir la angulaires-socket-io-graine projet).