Asta e ceea ce obținem ca rezultat:
Că ceea ce noi toți păreau face mistica, ne întoarcem la teoria.
Tipurile de etichete Moustache
Tag-uri in Moustache este un acolade duble, de exemplu: # 123; # 123; # 125 persoană numele; # 125;. # 123; # 123; # numele persoanei # 125; # 125;. În ambele cazuri, este vorba despre persoana ca o cheie? sau etichete cheie. Să vorbim despre diferitele tipuri de tag-uri ..
variabile
Variabile - tipul de bază și cel mai ușor de Moustache tag-ul. etichetă # 123; # 123; # 125 nume; # 125; în modelul de bază va încerca să găsească numele cheii în contextul actual. În cazul în care numele cheii nu este găsit, contextul părinte sunt verificate recursiv. Dacă ajungeți în contextul de sus și numele cheii nu a fost găsit, nimic nu va fi redat.
Valorile variabilelor sunt afișate mod HTML în condiții de siguranță, care este, toate etichetele HTML sunt înlocuite cu echivalentele lor codificate. Pentru a afișa HTML-cod triplu utilizare neschimbat acolade in loc de dublu: # 123; # 123; # 123; # 125 nume; # 125; # 125; .
De asemenea, puteți utiliza pentru a anula screening-ul unei variabile: # 123; # 123; nume # 125; # 125;. Acest lucru poate fi utilizat la schimbarea limitatoare de etichetă (pentru detalii, consultați Modificarea limitatoare de tag-uri).
În mod implicit, variabila lipsă returnează un șir gol. Dacă nu-ți place, setați această bibliotecă regulă Mustata. Versiunea Ruby mustăților sprijină ridicarea o excepție în această situație, de exemplu:
Definiți datele pentru acest șablon. Rețineți că nu am specificat vârsta obiect de proprietate. Acum ceva este)
Rezultatul muncii noastre este prezentată mai jos. Ați observat că există o eroare în consolă, și în cazul în care ar trebui să fie specificate de vârstă Chris - șir gol?
Blocuri de secțiune sunt de redare cu textul unul sau mai multe ori, în funcție de valorile-cheie în contextul actual. Secțiunea a eticheta de deschidere și zakryvayuschtya tag-ul. sectiunea Comportament este definita prin valoarea cheie: SECȚIUNEA afișată dacă variabila corespunzătoare are un tip boolean, iar valoarea sa adevărată. fie această variabilă este listă care nu este gol. Să ilustrăm acest lucru cu un exemplu. Șablonul nostru:
Date pentru ieșire:
listă goală
În cazul în care secțiunea corespunde unei liste care nu este gol, secțiunea este afișată pentru fiecare element din această listă. În acest context, pentru a afișa secțiunea de conținut este elementul următor. Scrieți un model simplu:
Și următoarele date l:
Rezultatul:
Datele prezente doar peste ponyatneey și compact:
Și obține același lucru.
Dacă valoarea este o entitate numită (funcție sau lambda), și va fi determinat să transmită un bloc de text. Textul transmis este bloc de caractere neotrenderenny. # 123; # 123; # 125 tag-uri; # 125; va fi necesar să se extindă - lambda-l faci singur. În acest caz, puteți implementa filtre sau cache.
Ia și scrie acest model:
Și pregătească următoarele date pentru el:
valori non-eronate
În cazul în care valoarea este non-eronată, dar nu este o listă, acesta va fi folosit ca un context pentru redarea unei singure unități.
Luați aici acest model:
Datele pentru ieșire sunt după cum urmează:
Asta obținem la ieșire:
secțiuni inversate
secțiunea Inverted numita secțiune etichetă de deschidere # 123; # 123; ^ SECTION_NAME # 125; # 125;. și se termină - # 123; # 123; / SECTION_NAME # 125; # 125;. In timp ce sectiuni pot fi folosite pentru a afișa text una sau de mai multe ori, în funcție de valoarea unei chei, porțiunile răsturnate poate afișa textul imediat ce valoarea inversă a cheii. Adică, ele vor fi afișate, în cazul în care cheia nu există, este fals, sau lista este goală.
Aici este un exemplu pentru a vă ajuta să înțelegeți. șablon:
Rezultatul:
Acesta va fi redat după cum urmează:
amprente parțiale
Tag-ul de deschidere amprente parțiale # 123; # 123;<имя фрагмента}}. а закрываются - {{/имя фрагмента}} .
fragmente separate sunt redate în timpul rulării (spre deosebire de timpul de compilare), și, prin urmare, pot primi punctele de date recursive. În acest fel, evita crearea unei bucle.
Numai necesar pentru Moustache:
De ce? Deoarece next_more.mustache dimensiunea fișierului moștenește și modul în care să pornească de la contextul de asteptare.
Deci, vă puteți gândi la valori particulare, cum ar fi incluziunea, importurile, extinderea de template-uri, template-uri încorporate, sau subpatterns, în ciuda faptului că, în sensul literal, nu este. De exemplu, ia în considerare acest șablon și amprente parțiale:
Acesta poate fi considerat un singur model avansat:
Schimbarea limitatoare tag-uri
Puteți schimba etichetele cu limitatoare # 123; # 123; # 125; # 125; la o altă secvență de caractere care nu conține spații și simbolul =. Luați în considerare următorul exemplu:
Aici avem o listă cu trei elemente. Primul punct se utilizează limitatoarele etichetele de stil implicit ( # 123; # 123; # 125; # 125; ), Al doilea folosește un stil diferit ( <% %> ) Și al treilea înapoi la stilul original. Acest lucru poate fi util pentru limbi, cum ar fi TeX. în cazul în care acolade duble pot să apară în text și ar fi ciudat de a utiliza pentru layout.
In acest studiu, Moustache nostru templateuri ajuns la capăt. În cele din urmă, vă las un mic exemplu de lucru c Mustata, în cazul în care, dacă ceva rămâne neclar. Mult noroc!
- unitate