Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung von JsRender für die Verwendung von Indexschleifenindizes

PHPz
Freigeben: 2018-09-30 14:16:17
Original
1958 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt die Verwendung von JsRender für den Indexschleifenindex. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

JsRedner und JsViews (JsViews ist eine weitere Kapselung basierend auf JsRender) werden als die nächste Generation von JQuery-Vorlagen bezeichnet, offizielle Adresse:

https:/ /github .com/BorisMoore/jsrender;
https://github.com/BorisMoore/jsviews.

Schleife ist ein wesentlicher Bestandteil der Template-Engine, und wenn man über Schleifen spricht, kommt man auf einen entscheidenden Faktor: den Index.

Der sogenannte Index ist die Anzahl der Zyklen. Durch den Index können Sie die Anzahl der aktuellen Zyklen ermitteln.

Wenn Leser die offizielle Dokumentation gelesen haben, sehen sie die folgende Methode zum Erhalten des Index:

Daten:

{
   names: ["Maradona","Pele","Ronaldo","Messi"]
}
Nach dem Login kopieren

Vorlagen-Markup:

{{for names}}

{{: #index+1}}.
{{: #data}}

{{/for}}
Nach dem Login kopieren

Ergebnis:

1. Maradona
2. Pele
3. Ronaldo
4. Mess
Nach dem Login kopieren

Der Index kann über das spezielle Literal #index in der Schleife erhalten werden. Das spezielle Literal #data entspricht diesem stellt in diesem Fall jeden Namen dar.

Als nächstes machen wir einen kleinen Trick, immer noch das obige Beispiel, aber dieses Mal möchte ich nur Namen anzeigen, die mit M beginnen:

Daten:

{
 names: ["Maradona","Pele","Ronaldo","Messi"]
}
Nach dem Login kopieren
Nach dem Login kopieren

Vorlagen-Markup :

{{for names}}
   {{if #data.indexOf("M") == 0}}
    

       {{: #index+1}}.
       {{: #data}}
    

   {{/if}}
 {{/for}}
Nach dem Login kopieren

Ergebnis:

Unavailable (nested view): use #getIndex()1. Maradona
Unavailable (nested view): use #getIndex()1. Messi
Nach dem Login kopieren

Ich habe einfach ein if-Urteil hinzugefügt, aber es wurde ein Fehler gemeldet!

Das Problem liegt in #index. Die Fehlermeldung ist sehr klar und fordert Sie auf, #getIndex() anstelle von #index zu verwenden.

Probieren Sie den ersetzten Code aus:

Daten:

{
 names: ["Maradona","Pele","Ronaldo","Messi"]
}
Nach dem Login kopieren
Nach dem Login kopieren

Vorlagen-Markup:

{{for names}}
   {{if #data.indexOf("M") == 0}}
    
       {{: #getIndex()+1}}.
       {{: #data}}
    

   {{/if}}
 {{/for}}
Nach dem Login kopieren

Ergebnis:

1. Maradona
4. Messi
Nach dem Login kopieren

Warum ist das so? Einfach ausgedrückt liegt es daran, dass {{if }} zwar keinen regulären Datenbereich erstellt, aber den verborgenen Bereich beeinträchtigt. Das heißt, {{if }} blockiert nicht die Sichtbarkeit regulärer Daten (die von Ihnen übergebenen Daten), beeinträchtigt jedoch die Sichtbarkeit versteckter Daten (#index, #parent). Dies ist ein einfaches Verständnis, und es besteht keine Notwendigkeit, auf Details einzugehen, da dies nur ein Fehler dieses Frameworks und kein Standard ist.

Daher liefert dieser Artikel den Lesern eine sehr wichtige Schlussfolgerung: Versuchen Sie, #getIndex() zu verwenden, um den Index abzurufen, und vermeiden Sie die Verwendung von #index, es sei denn, Ihre Anwendung ist einfach genug.

Ich hoffe, dass dieses Kapitel für alle hilfreich ist, um JsRender zu lernen. Weitere verwandte Tutorials finden Sie unter jQuery-Video-Tutorial!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage