Comment rafraîchir modèle de données à partir du serveur par programmation?
Fond
J'ai le plus de base "newbie" AngularJS question, pardonnez mon ignorance: comment puis-je actualiser le modèle via le code? Je suis sûr que c'est répondu plusieurs fois quelque part, mais je ne pouvais simplement pas
la trouver.
J'ai regardé quelques vidéos ici http://egghead.io et est allé rapidement sur le tutoriel, mais je sens que je suis absent quelque chose de très basique.
J'ai trouvé un exemple pertinent ici ($route.reload()
) mais je ne suis pas sûr de comprendre comment l'utiliser dans l'exemple ci-dessous
Voici la configuration
controllers.js
function PersonListCtrl($scope, $http) {
$http.get('/persons').success(function(data) {
$scope.persons = data;
});
}
index.html
...
<div>
<ul ng-controller="PersonListCtrl">
<li ng-repeat="person in persons">
Name: {{person.name}}, Age {{person.age}}
</li>
</ul>
</div>
...
Tout cela fonctionne étonnamment bien, chaque fois que la page est rechargé je voir la liste des personnes comme prévu
Les questions
- Disons que je veux mettre en œuvre un bouton actualiser, comment puis-je dire le modèle pour recharger par programmation?
- Comment puis-je accéder au modèle? il semble Angulaire est la magie de créer une instance de mon contrôleur, mais comment puis-je obtenir mes mains sur elle?
- MODIFIER ajouté une troisième question, même en tant que #1 mais comment peut-il être effectuée uniquement par du JavaScript?
Je suis sûr que je suis absent quelque chose de base, mais après avoir passé une heure à essayer de comprendre, je pense que ce doit être une question. S'il vous plaît laissez-moi savoir si c'est en double et je vais fermer + lien vers elle.
Vous devez vous connecter pour publier un commentaire.
Vous êtes à mi-chemin sur votre propre. Pour mettre en œuvre un rafraîchissement, vous devriez juste envelopper ce que vous avez déjà en fonction sur le champ d'application:
ensuite dans votre balisage
Autant que "l'accès à votre modèle", tout ce que vous devez faire c'est l'accès que $champ d'application.les personnes de tableau dans votre contrôleur:
par exemple (juste puedo code) de votre contrôleur:
Ensuite, vous pouvez l'utiliser à votre avis, ou ce que vous voulez le faire.
ng-click
directive?angular.element(domElem).scope()
... mais ne pas le faire. lolloadData()
fonction que j'ai faite pour recharger les données à partir du serveur. et peut-être queaddPerson()
méthode que j'ai créé une sauvegarde via AJAX et sur le succès qu'il appelleloadData()
loadData()
), que j'ai besoin pour exécuter encore et encore afin d'actualiser les données. Par exemple, si la demande lui-même modifié les données... Alors, comment est la "bonne" angulaire/MVC façon?Avant que je vous montre comment rafraîchir modèle de données à partir du serveur par programmation? Je dois expliquer pour vous le concept de Liaison de Données. C'est un concept extrêmement puissant qui va vraiment révolutionner la façon dont vous développez. Donc peut-être que vous avez à lire à propos de ce concept à partir de ce lien ou cette seconde lien pour unterstand comment AngularjS travail.
maintenant, je vais vous montrer un exemple d'échantillon qui explique pourquoi, comment pouvez-vous mettre à jour votre modèle de serveur.
Code HTML:
Donc, notre contrôleur nommé: PersonListCtrl et notre Modèle nommé: personnes. accédez à votre Contrôleur de js dans le but de développer la fonction nommée:
updateData()
qui sera invoquée lorsque nous sommes nécessité de mettre à jour et d'actualisation de notre Modèle personnes.Code Javascript:
Maintenant, je pour vous expliquer comment ça marche:
lorsque l'utilisateur clic sur le bouton Actualiser les Données, le serveur d'appels à la fonction updateData() et à l'intérieur de cette fonction, nous allons appeler notre service web par la fonction
$http.get()
et quand nous avons le résultat de notre ws nous sera l'impact de notre modèle (Ligne X).Les dés qui affecte les résultats de notre modèle, notre point de Vue de cette liste sera modifiée avec de nouvelles Données.