Qu'est-ce que x-tmpl?

86

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.

Dyin
la source
hey pourriez-vous me dire comment avez-vous envoyé des données avec le téléchargement comme je veux envoyer le lieu avec le fichier
NullPoiиteя
@Mayankswami: Je ne comprends pas ce que vous essayez de me demander.
Dyin
Je pense que vous avez utilisé le téléchargement de fichier jquery depuis. je veux savoir comment envoyer des données de formulaire avec le fichier.
NullPoiиteя
@Mayankswami: Je pense que vous devriez rechercher votre question sur ce site, et si vous ne trouvez pas ce que vous cherchez, créez une question.
Dyin
ce même code que j'ai vu dans le programme de téléchargement de fichiers jquery, donc je vous ai demandé monsieur
NullPoiиteя

Réponses:

63

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.

NibblyPig
la source
25
Je l'ai trouvé ici Modèles JavaScript . Le script a été référencé à partir de ce site. Maintenant, tout a du sens. Merci pour votre bref!
Dyin
1
jQuery ne fonctionnait pas lorsque je rendais du HTML avec x-tmpl. Par exemple, j'ai une case à cocher qui s'affiche à l'intérieur de x-tmpl. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </label>. Le script ajouté à l'intérieur du fichier html. Par exemple <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': checked')) {alert ('hi');} else {alert ('hello');}} </script>
502_Geek
11

Alors, quel type est text / x-tmpl?

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

Que sont ces balises {% et%}?

Une partie du langage de modèle.

Quel analyseur exécute ce code?

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

Quentin
la source
-4

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

czager
la source
2
En faisant plus de recherches à ce sujet, j'ai découvert que ma réponse était erronée. Dans ce cas, les balises sont utilisées par cette bibliothèque Javascript github.com/sigurdga/django-jquery-file-upload/blob/master/... comme méthode pour rendre le contenu HTML en temps réel basé sur le résultat d'une opération AJAX.
czager
7
Ces balises ne sont pas des balises de gabarit Django, mais des balises de gabarit Javascript par Sebastian Tschan: blueimp.github.com/JavaScript-Templates
Ricardo Carmo