Cherchait la réponse sur le net, mais je n'ai rien trouvé. Cette petite collation de code me frustre vraiment, car je ne peux pas la comprendre. (Cela fait partie du plugin appelé: 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>
- Alors, quel type est
text/x-tmpl
? - Qu'est-ce que c'est
{%
et les%}
balises? - Quel analyseur exécute ce code?
- ...
... mais aimerait tout savoir à ce sujet.
Réponses:
x-tmpl n'a aucune signification réelle, il empêche simplement le navigateur d'interpréter le script en javascript.
Il est principalement utilisé avec les modèles jquery ou la liaison de modèle knockoutjs .
À un moment donné, un objet de données javascript sera utilisé en conjonction avec le modèle pour rendre du html. Les valeurs de l'objet de données remplaceront celles marquées par {%} et similaires dans le modèle, avec certaines sections {%} reflétant le flux de code tel que des boucles, etc.
Je ne sais pas quelle bibliothèque de modèles utilise {%} cependant, ce ne sont pas des modèles jquery, jsrender ou knockout. Vous devrez vérifier quelles bibliothèques sont référencées dans l'exemple de code.
la source
Un non standard. Cela ressemble à un modèle.
Une partie du langage de modèle.
Probablement un écrit en JavaScript et importé dans un autre
<script>
élément sur la même page.la source
jQuery-File-Upload
a une dépendance surJavaScript-Templates
laquelle utilise letext/x-tmpl
type mime non standardla source
Le code ci-dessus fait référence au projet Django Jquery File Upload trouvé ici https://github.com/sigurdga/django-jquery-file-upload
Les {%%} sont des balises de modèle Django. Pour plus d'informations, visitez https://docs.djangoproject.com/en/dev/ref/templates/
Ces balises seront analysées par le système de modèles django
la source