Was ist x-tmpl?

86

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.

Dyin
quelle
Hey, würdest du mir sagen, wie du Daten mit dem Upload gesendet hast, als ob ich den Ort mit der Datei senden möchte
NullPoiиteя
@ Mayankswami: Ich verstehe nicht, was Sie von mir verlangen wollen.
Dyin
Ich denke, Sie haben den JQuery-Datei-Upload seitdem verwendet. Ich möchte wissen, wie man Formulardaten mit der Datei sendet.
NullPoiиteя
@ Mayankswami: Ich denke, Sie sollten auf dieser Website nach Ihrer Frage suchen. Wenn Sie nicht finden, wonach Sie suchen, erstellen Sie eine Frage.
Dyin
Der gleiche Code, den ich im Uploader der JQuery-Datei gesehen habe, hat Sie gefragt, Sir
NullPoiиteя

Antworten:

63

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.

NibblyPig
quelle
25
Ich habe es hier gefunden JavaScript-Vorlagen . Auf das Skript wurde von dieser Site aus verwiesen. Jetzt macht alles Sinn. Vielen Dank für Ihr Brefing!
Dyin
1
jQuery hat nicht funktioniert Wenn ich HTML mit x-tmpl rendere. Zum Beispiel habe ich ein Kontrollkästchen, das in x-tmpl gerendert wird. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </ label>. Das in der HTML-Datei hinzugefügte Skript. Zum Beispiel <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': checked')) {alert ('hi');} sonst {alert ('hallo');}} </ script>
502_Geek
11

Welcher Typ ist also text / x-tmpl?

Ein nicht standardmäßiger. Sieht aber aus wie eine Vorlage.

Was sind diese {% und%} Tags?

Teil der Vorlagensprache.

Welcher Parser führt diesen Code aus?

Wahrscheinlich eine, die in JavaScript geschrieben und in ein anderes <script>Element auf derselben Seite importiert wurde .

QUentin
quelle
-4

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

czager
quelle
2
Als ich weitere Nachforschungen anstellte, stellte ich fest, dass meine Antwort falsch war. In diesem Fall werden die Tags von dieser Javascript-Bibliothek github.com/sigurdga/django-jquery-file-upload/blob/master/… als Methode zum Rendern von HTML-Inhalten in Echtzeit basierend auf dem Ergebnis einer AJAX-Operation verwendet.
Czager
7
Diese Tags sind keine Django-Vorlagen-Tags, sondern Javascript-Vorlagen-Tags von Sebastian Tschan: blueimp.github.com/JavaScript-Templates
Ricardo Carmo