Ich habe im Internet nach der Antwort gesucht, konnte aber nichts finden. Dieser kleine Snack mit Code frustriert mich wirklich, da ich ihn nicht verstehen kann. (Es ist Teil des Plugins mit dem Namen: jQuery File Upload)
<script id="template-download" type="text/x-tmpl">
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-download fade">
{% if (file.error) { %}
<td></td>
<td class="name"><span>{%=file.name%}</span></td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
{% } else { %}
<td class="preview">{% if (file.thumbnail_url) { %}
<a href="{%=file.url%}" title="{%=file.name%}" rel="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
{% } %}</td>
<td class="name">
<a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
</td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
<td colspan="2"></td>
{% } %}
<td class="delete">
<button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}">
<i class="icon-trash icon-white"></i>
<span>{%=locale.fileupload.destroy%}</span>
</button>
<input type="checkbox" name="delete" value="1">
</td>
</tr>
{% } %}
</script>
- Also, welcher Typ ist
text/x-tmpl
? - Was sind das
{%
und%}
Tags? - Welcher Parser führt diesen Code aus?
- ...
... möchte aber alles darüber wissen.
Antworten:
x-tmpl hat keine wirkliche Bedeutung, es hindert den Browser einfach daran, das Skript als Javascript zu interpretieren.
Es wird hauptsächlich mit JQuery-Vorlagen oder Knockoutjs-Vorlagenbindungen verwendet .
Irgendwann wird ein Javascript-Datenobjekt in Verbindung mit der Vorlage verwendet, um HTML zu rendern. Die Werte im Datenobjekt ersetzen die in der Vorlage mit {%} gekennzeichneten und ähnlichen Werte, wobei einige {%} Abschnitte den Codefluss wie Schleifen usw. widerspiegeln.
Ich bin nicht sicher, welche Vorlagenbibliothek {%} verwendet, es handelt sich jedoch nicht um Abfragevorlagen, jsrender oder Knockout. Sie müssten überprüfen, auf welche Bibliotheken im Beispielcode verwiesen wird.
quelle
Ein nicht standardmäßiger. Sieht aber aus wie eine Vorlage.
Teil der Vorlagensprache.
Wahrscheinlich eine, die in JavaScript geschrieben und in ein anderes
<script>
Element auf derselben Seite importiert wurde .quelle
jQuery-File-Upload
hat eine Abhängigkeit, vonJavaScript-Templates
der der nicht standardmäßigetext/x-tmpl
MIME-Typ verwendet wirdquelle
Der obige Code verweist auf das Projekt Django Jquery File Upload, das hier zu finden ist: https://github.com/sigurdga/django-jquery-file-upload
Die {%%} sind Django-Vorlagen-Tags. Weitere Informationen finden Sie unter https://docs.djangoproject.com/de/dev/ref/templates/.
Diese Tags werden vom Django-Template-System analysiert
quelle