Découvrir Ember.js

Rechercher des objets

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Confiez à Ember Data le travail fastidieux de communication avec le serveur. Formulez-lui simplement vos besoins de recherche.
05:46

Transcription

Maintenant que notre modèle pour les groupes est prêt, nous allons essayer de la charger directement, sans utiliser Ajax. Je vais ouvrir ma root groups.js Jusqu'à présent on utilisait Ajax, donc je vais l'enlever. Ça, je vais le commenter... Et on va maintenant retourner... this...point...store...point...find... ALL tous les objets du type group Voilà, c'est tout ce qu'on a à faire. Une fois que sur les vidéos précédentes, nous avons configuré ember data, maintenant qu'il est configuré, on peut commencer à s'en servir. Donc juste en faisant this.store.findALL, il sait qu'il doit essayer de trouver tous les objets qu'il peut sur le serveur, de type group. Donc il va construire l'URL, il va aller chercher dans l'Adapter, l'URL, éventuellement ajouter le namespace Puis il va mettre slash, groups, et il mettra un « S » à la fin, puisqu'on a dit qu'on veut tous les groupes, donc automatiquement, il va construire la même URL qu'on a en dessous, et ce sera fait automatiquement. Alors on va voir si ça marche déjà, je vais aller sur mon... URL... hop... et on va... charger ça... Ok, ça a marché ! Il a bien pris mes éléments, quand je clique, ça va marcher ici, parce que là, on fait passer les objets. Par contre, si j'essaie de charger cette page-là, alors ça a marché ici, mais ça n'a pas marché à cet endroit-là. Pourquoi ? Parce qu'il essaie sur le nouveau serveur puisque je vous ai dit que j'avais modifié un petit peu le serveur pour qu'il redonne des données différentes. Maintenant en fait, il retourne groups, deux points, et les infos. Donc ça marche ici parce que ça a bien été pris en compte, mais on a pas modifié encore le chargement d'un seul groupe, et donc le format n'est plus correct quand on essaie de lui donner model.id ou model.title ou model.image, et bien il trouve pas parce qu'il y a que model.groups C'est l'inconvenient justement de pas gérer des vrais objets, de se baser sur un format qui arrive depuis un serveur, parce que dès que le format change un tout petit peu il y a plus rien qui marche. Donc c'est l'avantage justement d'utiliser ember data, puisque c'est lui qui fait tout ce travail de conversion. Alors pour corriger notre erreur, on va aller dans... group, point, js effectivement, on va enlever l'ancien appel d'Ajax, on va dire que cette fois-ci, encore une fois, on va se baser puisqu'on l'a bien configuré maintenant, sur notre Store, le data store. Et on va lui dire, alors au lieu de findALL ça va être findRECORD, « Trouve-moi l'enregistrement de type group... virgule, et avec l'ID... param, point, group, ID Si je reviens maintenant sur ma page, ça a marché, cette fois-ci on a quelque chose qui a très bien marché. Et tiens, regardez ce que je vous disais tout à l'heure, maintenant qu'on est passé sur ember data, il est capable de faire le lien entre le chargement qu'il a fait ici, il a bien fait deux chargements, mais automatiquement, il sait que c'est bien le même objet parce qu'on lui a expliqué que là, c'était le modèle group. Ici on lui a expliqué aussi que c'était le modèle group, donc, il a deux objets, du même modèle avec le même ID, il sait que c'est le même. Il est capable automatiquement de faire le lien pour nous. Et en terme de requête sur le serveur, il a construit les requêtes correctement, il a chargé localhost, slash, 2000 3000, slash, groups pour la liste de tous les éléments, et il a fait slash 2 pour avoir l'élément en second, l'élément isolé. À ce niveau-là, il existe plusieurs requêtes possibles, nous avons vu le findALL et le findRECORD, mais vous avez aussi une notion de query, c'est à dire si vous voulez avoir des paramètres, vous savez avec type slash ou groups, point d'interrogation et et différents filtres par exemple, ou si je fais slash contacts avec group est égal à 1 ou group est égal à 2 si je veux tous les contacts du groupe d'un certain groupe, je peux le faire avec des requêtes particulières. Pour faire ces requêtes particulières, c'est query qu'on va utiliser. Alors je vais le faire ici. Donc là, je vais dupliquer cette ligne pour essayer de vous montrer le query, Donc on va dire... query à la place de findALL, Dans ce cas-là, je vais chercher des contacts cette fois-ci. Même si ça marchera pas au moment de le tester, c'est pour vous montrer comment il construit la requête. Je vais ajouter donc un filtre, là on va dire : je veux que les contacts qui sont dans le groupe..; deux points, 1... Et ça on va le commenter. Si je retourne sur le site, Il n'a pas aussi forcément à changer la liste de groupes puisque finalement c'est des contacts qu'il a récupérés, et puis des groupes. Mais par contre, ce qui est intéressant c'est de voir l'URL qu'il a demandé. C'est à dire qu'au lieu de récupérer juste la liste de tous les contacts et la liste de tous les groupes qu'on avait tout à l'heure, il a ajouté un filtre : group est égal à 1. Si je veux voir la réponse, le serveur a tenu compte automatiquement de ça, il m'a retourné que les contacts qui sont dans le groupe 1 il m'a retourné ceux qui étaient dans le groupe 2 ou 3. Ça n'affiche rien puisqu'il s'attendait à récupérer des objets de type groupe et qu'il a eu des objets de type contact, donc tout le HBS n'est pas correct. Et c'est pour vous montrer comment on aurait pu faire ce genre de chose. Si par contre, j'avais mis quelque chose comme ça, quitte à mettre un filtre qui n'existe pas, test...je ne sais pas ce que le serveur va me retourner. Et bien, très bien, il les retourne tous. Donc là ça doit marcher, si j'affiche la page voilà, il a bien réussi à les charger. Donc c'était juste pour vous montrer qu'on peut construire des requêtes un petit peu plus complexes et vous pouvez mettre plusieurs types de filtres ici. Et vous pouvez aussi éventuellement, là mon serveur à moi ne le gère pas, mais si vous le souhaitez, vous pouvez aussi envelopper ça avec, filter, entre crochets test, est égal à 1. Et vous pouvez utiliser des requêtes un petit peu plus poussée, tout dépend du serveur que vous avez, et s'il est capable de gérer ce genre de filtre. Allez je vais enlever cette ligne, Remettre le code correct, pour qu'on passe à la suite.

Découvrir Ember.js

Créez vos composants et mettez en page vos sites avec une facilité déconcertante avec Ember.js. Apprenez à créer des routes et à charger vos modèles depuis un service web externe.

2h57 (37 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Spécial abonnés
Date de parution :31 mars 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !