Dans la partie précédente de cette série, nous avons vu comment créer un article de blog et afficher tous les articles de blog dans la page d'accueil. Dans cette partie, nous allons implémenter les fonctionnalités d'édition et de suppression de publication..
Commençons par cloner la partie précédente du tutoriel de GitHub.
clone de git https://github.com/jay3dec/AngularJS_Firebase_Part5.git
Après avoir cloné le code source, accédez au répertoire du projet et installez les dépendances requises..
cd AngularJS_Firebase_Part5 npm installer
Une fois les dépendances installées, démarrez le serveur.
npm start
Pointez votre navigateur sur http: // localhost: 8000 / app / # / home et vous devriez avoir l'application en cours d'exécution.
Nous allons commencer par ajouter des boutons d'édition et de suppression à nos articles de blog. Dans le dernier tutoriel, nous avons affiché les articles du blog dans la page d'accueil. Ajoutons un modifier
et un Effacer
bouton pour les articles du blog.
Aller vers app / bienvenue /
et ouvrir bienvenue.html
. Nous avons utilisé le composant bootstrap list-group pour afficher les articles du blog. Ajoutez le code HTML suivant au groupe de liste
composant pour afficher un modifier
et un Effacer
bouton.
le titre de l'article
article.post
Enregistrez les modifications et redémarrez le serveur. Connectez-vous en utilisant une adresse e-mail et un mot de passe valides et vous devriez pouvoir voir l'écran ci-dessous:
Nous allons utiliser un composant JavaScript Bootstrap appelé Modal popup. Pour utiliser les composants JavaScript Bootstrap, incluez les scripts jQuery et Bootstrap dans index.html
.
Une fois les références de scripts incluses, ajoutez le code HTML contextuel suivant à app / bienvenue / bienvenue.html
.
Ensuite, modifiez le modifier
bouton code HTML à inclure bascule de données
et cible de données
faire apparaître la popup sur clic.
le cible de données
l'attribut pointe sur l'ID de l'élément HTML à afficher dans la fenêtre contextuelle modale.
Ajoutez également un sur clic
événement au modifier
bouton balise d'ancrage parent comme indiqué:
Enregistrez les modifications, redémarrez le serveur et essayez de vous connecter. Lorsque vous êtes sur la page d’accueil, cliquez sur le bouton modifier
bouton et vous devriez avoir le popup affiché.
Chaque entrée de Firebase a un identifiant unique, que nous utiliserons pour récupérer les détails de l’enregistrement de Firebase. Pour interroger Firebase avec l'ID unique, nous avons besoin de cet ID. Dans le didacticiel précédent, nous avons interrogé Firebase et rendu le résultat renvoyé dans notre page d'accueil. Voici comment nous avons rendu le résultat:
le titre de l'article
article.post
Maintenant enlever data-toggle = "modal"
du modifier
bouton. Nous allons déclencher le popup modal de notre contrôleur.
À l'intérieur app / bienvenue / bienvenue.js
, ajouter un editPost
fonction que nous ferons appel à modifier
cliquez sur le bouton. Plus tôt, nous utilisions l'URL Firebase https://blistering-heat-2473.firebaseio.com/Articles pour récupérer tous les articles sur Firebase. Afin d'extraire un enregistrement particulier de Firebase, nous devons ajouter l'ID unique de l'article, tel que https://blistering-heat-2473.firebaseio.com/Articles/-JdMk7taYJCLZg9DfMJg.
Nous allons donc créer l'objet Firebase en utilisant l'URL spécifique à l'ID unique, puis le référencer pour extraire les détails de l'article en tant qu'objet. Voici comment editPost
fonction regarde:
$ scope.editPost = function (id) var firebaseObj = new Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + id); var syn = $ firebase (firebaseObj); $ scope.postToUpdate = syn. $ asObject (); $ ('# editModal'). modal (); // déclenche le pop-up modal
S'ouvrir bienvenue.html
et ajoutez une directive ngClick à la modifier
bouton. En ajoutant le ngClick
appel de fonction à editPost
, transmettez l'ID unique de l'article comme indiqué ci-dessous:
Ensuite, nous devons renseigner les détails des articles récupérés dans la fenêtre contextuelle modale. Depuis les détails sont dans $ scope.postToUpdate
, nous allons le lier au modal en utilisant la directive ngModel. Ajouter le ngModel
directive à la poster
et Titre
zone de texte comme indiqué ci-dessous:
Enregistrez toutes les modifications et redémarrez le serveur. Essayez de vous connecter en utilisant une adresse email et un mot de passe valides. Une fois connecté, cliquez sur le bouton modifier
bouton et vous devriez avoir la popup modale remplie avec les détails de l'article.
Nous allons ensuite implémenter la fonctionnalité de mise à jour. Lorsque l'article a été rempli dans la fenêtre contextuelle de modification, l'utilisateur peut modifier le titre ou l'article et cliquer sur Publier
. Une fois que vous avez cliqué sur Publier, nous devons mettre à jour les détails dans Firebase..
Tout d'abord, ajoutez le ngClick
directive à la Publier
bouton.
Ouvrir app / bienvenue / bienvenue.js
et ajouter un mettre à jour
appel de fonction qui est appelé Publier
cliquez sur le bouton. Dans la fonction de mise à jour, nous devons créer un objet Firebase à l'aide de l'URL Firebase ajoutée par l'ID d'article unique..
var fb = new Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + $ scope.postToUpdate. $ id);
En utilisant le fb
objet, créer un $ firebase
objet.
var article = $ firebase (fb);
À l'aide de l'objet article, nous appelons l'API de mise à jour pour mettre à jour les modifications apportées à Firebase..
article. $ update (titre: $ scope.postToUpdate.title, article: $ scope.postToUpdate.post, emailId: $ scope.postToUpdate.emailId). puis (fonction (ref) // Mise à jour réussie, fonction ( erreur) console.log ("Erreur:", erreur););
Une fois la mise à jour réussie, fermez la fenêtre contextuelle modale. Ajoutez le code suivant pour mettre à jour le rappel de réussite.
$ ('# editModal'). modal ('masquer');
Voici le complet mettre à jour
une fonction:
$ scope.update = function () var fb = new Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + $ scope.postToUpdate. $ id); var article = $ firebase (fb); article. $ update (titre: $ scope.postToUpdate.title, article: $ scope.postToUpdate.post, emailId: $ scope.postToUpdate.emailId). alors (fonction (ref) $ ('# editModal'). modal ('masquer');, fonction (erreur) console.log ("Erreur:", erreur););
Enregistrez toutes les modifications et redémarrez le serveur. Essayez de vous connecter en utilisant une adresse email et un mot de passe valides. Une fois connecté, essayez de modifier et de mettre à jour un message..
Ensuite, implémentons la fonctionnalité de suppression de publication. Avant de supprimer un message, il est susceptible d'afficher une fenêtre de confirmation, alors commençons par cela.
Ici aussi, nous utiliserons un modal Bootstrap pour afficher une fenêtre de confirmation. Ajoutez le code HTML suivant à bienvenue.html
:
Maintenant, modifiez le Effacer
bouton pour ajouter un bascule de données
et cible de données
attribuer comme indiqué ci-dessous:
le bascule de données
attribut déclenche le popup modal, et le cible de données
attribut identifie le bloc HTML à afficher en tant que popup modal.
Enregistrez les modifications et redémarrez le serveur. Connectez-vous et cliquez sur le Effacer
bouton et vous devriez voir le popup confirmation de suppression.
Maintenant, afin de supprimer la publication de blog, nous devons extraire l'article de Firebase. Une fois que nous avons l'ID, si l'utilisateur clique sur Supprimer dans la fenêtre contextuelle modale, nous supprimons l'article de Firebase..
Alors, retirez d’abord le bascule de données
attribut de la Effacer
bouton, car nous allons déclencher le menu contextuel modal à partir du contrôleur une fois que l'article a été récupéré. Aussi, ajoutez un ngClick
directive à la Effacer
bouton.
À l'intérieur app / bienvenue / bienvenue.js
, créer une nouvelle fonction appelée Confirmation de la suppression
, ce qui déclenchera la fenêtre contextuelle modale et récupérera également l’article de Firebase. Voici ce que le Confirmation de la suppression
la fonction ressemble à:
$ scope.confirmDelete = function (id) var fb = new Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + id); var article = $ firebase (fb); $ scope.postToDelete = article. $ asObject (); $ ('# deleteModal'). modal ();
Comme on le voit dans le code ci-dessus, nous avons créé le Base de feu
objet à l'aide de l'ID d'article. En utilisant $ firebase
nous avons récupéré l'objet article. En utilisant cet objet article, nous pourrons supprimer l'article de Firebase..
Ensuite, ajoutez une autre fonction appelée Supprimer le message
, que nous appellerons une fois que l'utilisateur aura confirmé la suppression de l'article. dans le Confirmation de la suppression
fonction nous avons déjà affecté l'objet article à $ scope.postToDelete
. dans le Supprimer le message
fonction nous allons utiliser le $ scope.postToDelete
objet pour faire référence à l'article et le supprimer de Firebase. Voici comment Supprimer le message
fonction regarde:
$ scope.deletePost = function () var fb = new Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + $ scope.postToDelete. $ id); var article = $ firebase (fb); article. $ remove (). then (function (ref) $ ('# deleteModal'). modal ('hide');, function (error) console.log ("Erreur:", erreur);) ;
Nous avons utilisé la méthode API $ remove pour supprimer l'article de Firebase. En cas de suppression réussie, nous avons également basculé la visibilité de la fenêtre contextuelle de confirmation de suppression..
Ajouter le ngClick
directive sur Effacer
bouton dans la fenêtre contextuelle de suppression.
Enregistrez toutes les modifications et redémarrez le serveur. Connectez-vous en utilisant une adresse email et un mot de passe valides. Une fois connecté, essayez de supprimer un article..
Dans ce didacticiel, nous avons vu comment modifier et supprimer les articles de blog ajoutés à Firebase à l'aide de méthodes API. Dans la prochaine partie du didacticiel, nous essaierons d’intégrer les indicateurs de chargement Ladda dans notre application. Nous allons également corriger quelques petits problèmes existants dans notre application.
Faites-nous savoir vos pensées dans les commentaires ci-dessous!
Le code source de ce tutoriel est disponible sur GitHub.