87 votes

Qu'est-ce que x-tmpl?

Je cherchais 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 le 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 ?
  • Quelles sont ces balises {% et %} ?
  • Quel analyseur exécute ce code?
  • ...

... mais j'aimerais tout savoir à ce sujet.

64voto

SLC Points 13490

x-tmpl a pas de sens réel, il s'arrête tout simplement le navigateur d'interpréter le script comme javascript.

Il est principalement utilisé avec jquery templates ou knockoutjs la liaison de modèle.

À un certain point, un javascript de données objet sera utilisé en conjonction avec le modèle de rendu html. Les valeurs dans l'objet de données permettra de remplacer ceux qui sont marqués avec {%} et similaire dans le modèle, avec certains {%} sections reflétant les flux de code tels que les boucles, etc.

Je ne suis pas sûr de template library utilise {%} cependant, il n'est pas jquery templates, jsrender ou knock-out. Vous devez vérifier que les bibliothèques sont référencés dans l'exemple de code.

12voto

Quentin Points 325526

Alors, quel type est text / x-tmpl?

Un non standard. Cela ressemble à un modèle cependant.

Que sont ces balises {% et%}?

Une partie du langage de template.

Quel analyseur exécute ce code?

Probablement un écrit en JavaScript et importé dans un autre élément <script> sur la même page.

3voto

Mehdi Points 671

Il y a déjà une discussion sur le jQuery File Upload : Utilisation de moteur de Template de Javascript avec jQuery

Vous trouverez de nombreux liens de tutoriels et de documentation...

-3voto

czager Points 19

Le code ci-dessus les références du projet Django Jquery File Upload trouvé ici https://github.com/sigurdga/django-jquery-file-upload

Le {%%d sont des balises de template de Django. Pour plus d’informations visitez https://docs.djangoproject.com/en/dev/ref/templates/

Ces balises seront analysées par le système de templates de django

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X