În partea anterioară a acestei serii, am văzut cum să creați o postare în blog și să afișați toate mesajele de pe pagina de întâmpinare. În această parte, vom implementa funcția de editare și ștergere a postărilor.
Să începem prin clonarea părții anterioare a tutorialului de la GitHub.
git clone https://github.com/jay3dec/AngularJS_Firebase_Part5.git
După ce ați clonat codul sursă, navigați la directorul proiectului și instalați dependențele necesare.
cd AngularJS_Firebase_Part5 Instalare npm
După instalarea dependențelor, porniți serverul.
npm start
Punctați browser-ul la http: // localhost: 8000 / app / # / home și ar trebui să aveți aplicația să ruleze.
Vom începe prin adăugarea butoanelor de editare și ștergere a postărilor din blog. În ultimul tutorial, am afișat postările de pe pagina de bun venit. Să adăugăm un Editați | ×
și a Șterge
butonul pentru posturile din blog.
Navigheaza catre app / de bun venit /
și se deschide welcome.html
. Am folosit componenta grup-list de bootstrap pentru a afișa postările din blog. Adăugați următorul cod HTML la Lista-grup
pentru a afișa un Editați | ×
și a Șterge
buton.
titlul articolului
Article.post
Salvați modificările și reporniți serverul. Conectați-vă utilizând o adresă de e-mail și o parolă valabilă și ar trebui să vedeți ecranul de mai jos:
Vom folosi o componentă JavaScript Bootstrap denumită pop-up modal. Pentru a utiliza componentele JavaScript Bootstrap, includeți scripturile jQuery și Bootstrap în index.html
.
După ce sunt incluse referințele pentru scripturi, adăugați următorul cod HTML popup app / de bun venit / welcome.html
.
Apoi, modificați Editați | ×
butonul HTML pentru a include date de comutare
și date-țintă
pentru a face afișarea pop-up la clic.
date-țintă
atributul indică ID-ul elementului HTML care trebuie să fie afișat în fereastra pop-up modală.
Adăugați și un onclick
eveniment la Editați | ×
butonul de ancorare parentală după cum se arată:
Salvați modificările, reporniți serverul și încercați să vă conectați. Când vă aflați pe pagina de întâmpinare, faceți clic pe Editați | ×
și ar trebui să aveți afișat pop-up.
Fiecare intrare în Firebase are un ID unic, pe care îl vom folosi pentru a prelua detaliile înregistrate din Firebase. Pentru a interoga Firebase cu codul unic, trebuie să avem acel ID. În tutorialul anterior, am interogat Firebase și am redat rezultatul returnat în pagina noastră de bun venit. Iată cum am obținut rezultatul:
titlul articolului
Article.post
Acum eliminați date-comutare = "modal"
de la Editați | ×
buton. Vom declanșa un pop-up modal de la controlorul nostru.
Interior app / de bun venit / welcome.js
, adăugați un editează postarea
funcție pe care o vom apela Editați | ×
clic pe buton. Anterior, am folosit Firebase URL https://blistering-heat-2473.firebaseio.com/Articles pentru a prelua toate articolele de la Firebase. Pentru a prelua o înregistrare specială de la Firebase, va trebui să adăugăm codul unic al articolului, cum ar fi https://blistering-heat-2473.firebaseio.com/Articles/-JdMk7taYJCLZg9DfMJg.
Așadar, vom crea obiectul Firebase utilizând adresa URL specifică unică și apoi vom face trimitere pentru a prelua detaliile articolului ca obiect. Iată cum editează postarea
funcția arată:
$ scope.editPost = funcție (id) var firebaseObj = Firebase nouă ("https://blistering-heat-2473.firebaseio.com/Articles/" + id); var sinc = $ firebase (firebaseObj); $ scope.postToUpdate = fișierul $ asObject (); . $ ( '# EditModal') modal (); // declanșează pop-up-ul modal
Deschide welcome.html
și adăugați o directivă ngClick la Editați | ×
buton. În timp ce adăugați ngClick
apel la funcția editează postarea
, treceți codul unic al articolului, după cum se arată mai jos:
Apoi, trebuie să completați detaliile articolelor extrase în fereastra pop-up modală. Din moment ce detaliile sunt înăuntru $ scope.postToUpdate
, o vom lega la modal folosind directiva ngModel. Adaugă ngModel
directivă post
și titlu
zona de text după cum se arată mai jos:
Salvați toate modificările și reporniți serverul. Încercați să vă conectați utilizând o adresă de e-mail și o parolă valide. După ce v-ați conectat, faceți clic pe Editați | ×
și ar trebui să aveți popupul populate cu detaliile articolului.
Apoi vom implementa funcționalitatea de actualizare. Când articolul a fost poprit în fereastra de modificare modală, utilizatorul poate modifica titlul sau postarea și poate da clic Publica
. Odată ce a fost făcut clic pe Publish, trebuie să actualizăm detaliile în Firebase.
Mai întâi, adăugați ngClick
directivă Publica
buton.
Deschis app / de bun venit / welcome.js
și adăugați un Actualizați
apel care este apelat Publica
clic pe buton. În cadrul funcției de actualizare, trebuie să creați un obiect Firebase utilizând adresa URL Firebase adăugată de ID-ul unic al articolului.
var fb = noul Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + $ scope.postToUpdate. $ id);
Utilizarea pensiune completă
obiect, creați un $ firebase
obiect.
articolul var = $ firebase (fb);
Utilizând obiectul articol, vom apela API-ul de actualizare pentru a actualiza modificările Firebase.
articolul update: title: $ scope.postToUpdate.title, post: $ scope.postToUpdate.post, emailId: $ scope.postToUpdate.emailId), apoi (funcția (ref) // Update successful eroare) console.log ("Eroare:", eroare););
Odată ce actualizarea are succes, închideți fereastra pop-up modală. Adăugați următorul cod pentru a actualiza apelul de apel de succes.
. $ ( '# EditModal') modal ( 'ascunde');
Aici este plinul Actualizați
funcţie:
$ scope.update = function () var fb = noua Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + $ scope.postToUpdate $ id); articolul var = $ firebase (fb); articolul update: title: $ scope.postToUpdate.title, post: $ scope.postToUpdate.post, emailId: $ scope.postToUpdate.emailId), apoi (function (ref) $ ('editModal'). modal ('ascunde');, funcția (eroare) console.log ("Eroare:", eroare););
Salvați toate modificările și reporniți serverul. Încercați să vă conectați utilizând o adresă de e-mail și o parolă valide. După ce v-ați conectat, încercați să editați și să actualizați o postare.
Apoi, să implementăm funcția de ștergere post. Înainte de a șterge o postare, este capabil să afișeze un popup de confirmare, deci începeți cu asta.
De asemenea, vom folosi o modalitate Bootstrap pentru a afișa un popup de confirmare. Adăugați următorul cod HTML la welcome.html
:
Acum, modificați Șterge
pentru a adăuga o date de comutare
și date-țintă
atributul după cum se arată mai jos:
date de comutare
atributul declanșează popupul modal și date-țintă
atributul identifică ce bloc HTML va fi afișat ca pop-up modal.
Salvați modificările și reporniți serverul. Conectați-vă și faceți clic pe Șterge
și ar trebui să vedeți popup-ul de confirmare a ștergerii.
Acum, pentru a șterge postarea pe blog, trebuie să preluăm articolul din Firebase. Odată ce avem ID-ul, dacă utilizatorul dă clic pe Șterge din fereastra pop-up modală, vom elimina articolul din Firebase.
Deci, mai întâi scoateți date de comutare
atribut de la Șterge
, deoarece vom declanșa afișarea modală de la controler după ce articolul a fost preluat. De asemenea, adăugați un ngClick
directivă Șterge
buton.
Interior app / de bun venit / welcome.js
, creați o nouă funcție numită confirmă ștergerea
, care va declanșa pop-up-ul modal și de asemenea să aducă articolul din Firebase. Iată ce este confirmă ștergerea
funcționează astfel:
$ scope.confirmDelete = funcția (id) var fb = noua Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + id); articolul var = $ firebase (fb); $ scope.postToDelete = articol $ asObject (); $ ( '# DeleteModal') modal ().;
Așa cum am văzut în codul de mai sus, am creat Firebase
obiect utilizând ID-ul articolului. Utilizarea $ firebase
am recuperat obiectul articol. Utilizând acest obiect din articol, vom putea elimina articolul din Firebase.
Apoi, adăugați o altă funcție numită deletePost
, pe care o vom apela după ce utilizatorul confirmă ștergerea articolului. În confirmă ștergerea
la care am atribuit deja obiectul articol $ scope.postToDelete
. În deletePost
vom folosi funcția $ scope.postToDelete
obiect să se refere la articolul și să îl elimine din Firebase. Iată cum deletePost
funcția arată:
$ scope.deletePost = funcția () var fb = noua Firebase ("https://blistering-heat-2473.firebaseio.com/Articles/" + $ scope.postToDelete $ id); articolul var = $ firebase (fb); articolul $ (delete)), funcția (eroare) console.log ("Eroare:", eroare)) ;
Am folosit metoda $ remove API pentru a elimina articolul din Firebase. În cazul ștergerii reușite, am redirecționat și vizibilitatea ferestrei de confirmare a ștergerii.
Adaugă ngClick
directivă privind Șterge
în meniul de ștergere modală.
Salvați toate modificările și reporniți serverul. Conectați-vă utilizând o adresă de e-mail și o parolă valide. După ce v-ați conectat, încercați să ștergeți un articol.
În acest tutorial, am văzut cum să editați și să ștergeți postările de blog adăugate în Firebase utilizând metodele API. În următoarea parte a tutorialului, vom încerca să integrăm indicatorii de încărcare Ladda în aplicația noastră. De asemenea, vom remedia unele probleme mici existente în aplicația noastră.
Spuneți-ne gândurile dvs. în comentariile de mai jos!
Codul sursă din acest tutorial este disponibil pe GitHub.