Această serie de tutori se apropie de final. Dacă ați urmat până acum, sperăm că aveți o înțelegere solidă a cadrului MVC și cum funcționează Parse.js. Ultima sesiune, am implementat vizualizarea de ștergere, deconectare și un singur blog. Și în această sesiune vom adăuga zona de comentare la vizualizarea unei singure pagini.
Secțiunea de comentarii va avea două părți: un formular de comentarii în partea de sus și o listă de comentarii la acel post blog din partea de jos:
Pentru că acum ați construit atât de multe caracteristici, voi accelera un pic și voi grupa conținutul în trei pași mari:
Modelul vine întotdeauna primul. Să mergem mai departe și să creăm o nouă clasă pe Parse.com.
Această clasă nouă de comentarii ar trebui să aibă următoarele domenii:
blogul
numele autorului
e-mail
conţinut
Indicatorul indică înapoi la postul de blog din care aparține, iar celelalte trei câmpuri stochează informații cheie pentru acel comentariu. De dragul acestui tutorial, nu voi avea utilizatorul să vă înscrieți și să vă conectați aici, dar puteți citi documentația Parse.js din clasa User pentru mai multe detalii.
Apoi, să creați cometariu
în modelul nostru blog.js
fişier. Veți observa că este foarte asemănător cu Blog
modelul pe care l-am creat. Singura diferență este că nu le permitem utilizatorilor să își editeze comentariile mai târziu, deci folosim un .adăuga()
funcție în loc de .Actualizați()
funcţie. Din nou, nu ezitați să îl modificați dacă doriți.
Comentariu = Parse.Object.extend ('Comentariu', )
Mergeți la vizualizare, deoarece avem această secțiune de comentarii BlogView
, putem face comentariul în BlogView
de asemenea. Vom pune doar asta în .face()
funcţie.
În primul rând trebuie să preluăm comentariile din blogul curent:
render: function () var self = aceasta, attributes = this.model.toJSON (), // O interogare nouă pentru a filtra tot comentariul din acest blog query = new Parse.Query (Comment) .equalTo ("blog" , this.model) .descend ('createdAt'), // Creați o bază de colectare pe noua colecție query = query.collection (); // Returnați colecția collection.fetch (), apoi (funcția (comments) // Stocați comentariile ca obiect JSON și adăugați-le în atributele object attributes.comment = comments.toJSON (); auto.template (atribute)););
Observați că vom adăuga .descendent ( 'createdAt')
la interogare, astfel încât să afișăm întotdeauna cel mai recent comentariu în partea de sus.
Daca ne logam atribute
chiar înainte de ao face, putem vedea că obiectul ar fi structurat astfel:
ACL: Obiect, autor: Obiect, autorName: "moyi", comentariu: Array [2], ... __proto__: Object
Și puteți vedea că comentariile sunt stocate ca o matrice și sunt pregătite pentru a fi redate.
Acum avem comentarii trimise în șablonul nostru HTML atribut
, acum putem trece prin matricea cu sintaxa handlebar.js:
#if comentariuComentarii
Dacă doriți să faceți mai întâi un test, faceți câteva comentarii false despre Parse.com în baza dvs. de date și actualizați această pagină:
Apoi, putem trece la adăugarea formularului de comentarii.
Adăugați această structură HTML chiar deasupra secțiunii pentru comentarii:
Lasa un comentariu
Acum, să adăugăm un eveniment în BlogView
:
evenimente: 'submit .form-comment': 'submit'
Și apoi construiți a depune()
funcţie. Dacă încă mai ții minte cum am scris funcția de trimitere pentru WriteBlogView
, acest lucru este destul de similar.
Trebuie doar să observăm de data asta că trebuie să intrăm acest model
la fel de blogul
pentru noul comentariu:
trimiteți: funcția (e) e.preventDefault (); var data = $ (e.target) .serializeArray (), comentariu = nou Comentariu (); comment.add (blog: acest model, autorName: data [0] .value, email: data [1] .value, content: data [2] .value);
Dați-i un test și, cu siguranță, noul comentariu se afișează acum în partea de sus:
În această sesiune, ați construit funcția de comentariu în trei pași rapizi. Sperăm că este ușor pentru dvs. acum, și puteți scrie majoritatea pașilor de unul singur.
Următoarea sesiune, vă voi arăta o ultimă caracteristică: adăugarea de categorii în blog. După asta, vă voi lăsa acolo, ca dezvoltatori capabili de Parse.js. Stay tuned și lasă-mă toate întrebările și feedback-ul pe care-l aveți.