Crearea unei aplicații Web de la zero utilizând AngularJS și Firebase Partea 7

În partea anterioară a acestei serii de tutori am implementat Editați | × și șterge post pe pagina de bun venit. În această parte a tutorialului, vom adăuga un indicator de încărcare Ladda în aplicația noastră. Adăugarea unui indicator de încărcare este foarte esențială, deoarece face aplicația mai interactivă. De asemenea, vom remedia câteva probleme minore pe măsură ce progresează tutorialul.

Noțiuni de bază

Să începem prin clonarea părții anterioare a tutorialului de la GitHub.

git clone https://github.com/jay3dec/AngularJS_Firebase_Part6.git

După ce ați clonat codul sursă, navigați la directorul proiectului și instalați dependențele necesare.

cd AngularJS_Firebase_Part6 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.

Adăugarea unui indicator de încărcare Ladda

Ladda este un concept UI care îmbină un indicator de încărcare în butoane, făcându-l interactiv și ușor de utilizat. De pe site-ul oficial Ladda,

Un concept UI care îmbină indicatorii de încărcare cu acțiunea care le-a invocat. Destinată în primul rând pentru utilizarea cu formulare, în care oferă utilizatorilor feedback imediat după trimitere, mai degrabă decât lăsându-i să se întrebe în timp ce browserul își face lucrul.

Crearea unei directive pentru Ladda

Pentru a folosi Ladda în aplicația noastră, vom crea o directivă AngularJS pentru indicatorul de încărcare Ladda. Directivele reprezintă una dintre caracteristicile principale ale AngularJS și controlează randarea HTML în interiorul aplicației.

Deschide app / home / home.js și să creați o directivă simplă după cum se arată mai jos: 

.directiva ('laddaLoading', [function () return link: function (scope, element, attrs) ;]);

Vom începe și opri indicatorul de încărcare Ladda bazat pe a domeniul de aplicare $ variabilă numită login.loading. Cand login.loading este adevărat, vom arăta indicatorul de încărcare, iar când este fals, vom opri indicatorul de încărcare. Deci, în HomeCtrl, defini o variabilă numită Logare și alocați-l $ scope.login variabil.

var login = ; $ scope.login = login;

Apoi includeți fișierele CSS și JavaScript de la ladda dist in acasă / home.html așa cum se arată mai jos:

  

După adăugarea referințelor de script și de stil de mai sus, modificați Conectare buton în home.html așa cum se arată:

După cum puteți vedea în codul de mai sus, am adăugat directiva laddaLoading la buton și au trecut login.loading. Vom seta și vom reseta parcurgerea login.loading pentru a comuta afișajul indicatorului de încărcare. De asemenea, am adăugat anumite stiluri, Segoe-ui-light și ladda-buton, să modeleze indicatorii de încărcare Ladda.

Acum, în directivă legătură adăugați următorul cod pentru a păstra un ceas pe login.loading variabila de domeniu și porniți și opriți indicatorul în consecință.

.directiva ('laddaLoading', [function () return link: function (scope, element, attrs) var Ladda = window.Ladda; var ladda = Ladda.create (element [0] pentru a schimba domeniul $ watch (attrs.laddaLoading, function (newVal, oldVal) // Bazat pe valoarea de start si oprirea indicatorului daca (newVal) ladda.start (); altceva ladda.stop (); );;]);

Apoi, când utilizatorul face clic pe Conectare butonul trebuie să setați indicatorul de încărcare. Deci, în HomeCtrl în interiorul Conectare funcție, setat login.loading la adevărat pentru a porni indicatorul de încărcare.

login.loading = true;

În mod similar, la conectare succes sau eșec sună callback, trebuie să setăm login.loading la fals pentru a opri indicatorul de încărcare.

login.loading = false;

Salvați toate modificările și reporniți serverul. Introduceți o adresă de e-mail și o parolă validă și ar trebui să puteți vedea indicatorul de încărcare în acțiune.

În mod similar, putem adăuga ladda indicator de încărcare pentru butonul Înregistrare în înregistrați / register.html. Includeți referințele necesare în înregistrați / register.html așa cum se arată: 

  

Modificați Inregistreaza-te pentru a include directiva după cum se arată:

În interiorul RegisterCtrl adaugă Logare pentru a seta și a reseta indicatorul de încărcare Ladda.

 var login = ; $ Scope.login = conectare;

Acum, pentru a activa indicatorul de încărcare când utilizatorul face clic pe Inregistreaza-te butonul, adăugați următorul cod la Inscrie-te funcţie.

login.loading = true;

Pentru a dezactiva indicatorul de încărcare, porniți succes sau eșec retur apel adăugați următorul cod.

login.loading = false;

Salvați toate modificările și încercați să vă înregistrați pentru un cont nou. Când faceți clic pe Inregistreaza-te buton, ar trebui să puteți vedea indicatorul de încărcare.

În mod similar, putem adăuga indicatorul de încărcare la Adăugați un post pagina de asemenea. Este exact același lucru, așa că nu o voi mai repeta. Dacă rămâneți blocat, aruncați o privire la codul sursă de la sfârșitul acestui tutorial.

Filtrați articole în pagina de întâmpinare

În acest moment, orice utilizator conectat poate adăuga, edita și șterge toate postările din aplicație. Dar nu este corect să permiteți unui utilizator să modifice postarea altui utilizator. Deci, vom filtra postările afișate pe pagina de întâmpinare și vom afișa numai acele postări create de utilizatorul respectiv.

Pentru a interoga date de la Firebase, putem folosi API-ul startAt și endAt. Utilizarea incepe la și EnDat putem obține rezultate cu punctul de pornire și punct final specificat. Dar datele cu care trecem incepe la ar trebui să fie o prioritate. Deci, mai întâi va trebui să setăm adresa de e-mail ca o prioritate în timp ce împingem datele către Firebase.

Deci, deschide-te addPost / addPost.js și aruncăm o privire asupra porțiunii în care împingem datele către Firebase.

fb, $ push (title: title, post: post, emailId: CommonProp.getUser ()), apoi function (ref) console.log (ref) , funcția (eroare) console.log ("Eroare:", eroare););

Modificați codul de mai sus pentru a seta adresa de e-mail ca o prioritate în timp ce împingeți datele.

var utilizator = CommonProp.getUser (); fb, $ push (titlu: titlu, post: post, emailId: user,'priority ': user). );, funcția (eroare) console.log ("Eroare:", eroare););

Deci, dacă adăugăm o postare în aplicația noastră, este adăugată o prioritate pentru adresa de e-mail. Apoi, deschide-te Bine ai venit / welcome.js și aruncăm o privire la porțiunea în care creăm $ firebase obiect în WelcomeCtrl.

var sincronizare = $ firebase (firebaseObj);

Modificați codul de mai sus adăugând incepe la și EnDat metode pentru firebaseObj.

var sincc = $ firebase (firebaseObj.startAt ($ scope.username) .endAt ($ scope.username));

Acum, acesta va returna numai posturile adăugate de un anumit utilizator conectat.

Salvați modificările de mai sus și reporniți serverul. Eliminați toate postările vechi de la Firebase. Încercați acum să adăugați postări după conectarea cu o adresă de e-mail și o parolă valide. Odată ce au fost create câteva postări, încercați să vă conectați ca un alt utilizator și nu veți putea vedea posturile create de utilizatorul anterior.

Concluzie

În acest tutorial, am văzut cum să adăugăm indicatorul de încărcare Ladda în aplicația noastră pentru a face aplicația noastră mai interactivă. De asemenea, am văzut cum să filtrați rezultatul datelor în timp ce preluați date de la Firebase. În următoarea parte a acestei serii vom implementa funcționalitatea de deconectare și vom remedia și câteva probleme existente.

Codul sursă din acest tutorial este disponibil pe GitHub. Spuneți-ne gândurile, corecțiile și sugestiile din comentariile de mai jos!

Cod