Cos'è x-tmpl?


86

Stavo cercando la risposta in rete, ma non ho trovato nulla. Questo piccolo spuntino di codice mi frustra davvero, perché non riesco a capirlo. (Fa parte del plugin chiamato: 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>
  • Allora, che tipo è text/x-tmpl?
  • Cosa sono questi {%e i %}tag?
  • Quale parser esegue questo codice?
  • ...

... ma vorrei sapere tutto su questo.


hey mi diresti come hai inviato i dati con il caricamento come se volessi inviare il luogo con il file
NullPoiиteя

@ Mayankswami: non capisco cosa stai cercando di chiedere da me.
Dyin

Penso che tu abbia utilizzato il caricamento del file jquery da allora. voglio sapere come inviare i dati del modulo con il file.
NullPoiиteя

@ Mayankswami: Penso che dovresti cercare la tua domanda su questo sito e, se non trovi quello che stai cercando, crea una domanda.
Dyin

questo stesso codice che ho visto nell'uploader di file jquery, quindi ti
ho chiesto

Risposte:


63

x-tmpl non ha alcun significato reale, semplicemente impedisce al browser di interpretare lo script come javascript.

Viene utilizzato principalmente con i modelli jquery o l' associazione di modelli knockoutjs .

Ad un certo punto, un oggetto dati javascript verrà utilizzato insieme al modello per eseguire il rendering di alcuni html. I valori nell'oggetto dati sostituiranno quelli contrassegnati con {%} e simili nel modello, con alcune sezioni {%} che riflettono il flusso di codice come i loop ecc.

Non sono sicuro di quale libreria di modelli utilizzi {%}, tuttavia, non sono modelli jquery, jsrender o knockout. Dovresti controllare a quali librerie si fa riferimento nel codice di esempio.


25
L'ho trovato qui JavaScript Templates . Lo script è stato referenziato da questo sito. Ora tutto ha un senso. Grazie per la tua birra!
Dyin

1
jQuery non ha funzionato quando eseguo il rendering HTML con x-tmpl. Ad esempio, ho una casella di controllo che esegue il rendering all'interno di x-tmpl. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </label>. Lo script aggiunto all'interno del file html. Ad esempio <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': checks')) {alert ('hi');} else {alert ('hello');}} </script>
502_Geek

11

Allora, che tipo è text / x-tmpl?

Uno non standard. Però sembra un modello.

Cosa sono questi tag {% e%}?

Parte del linguaggio dei modelli.

Quale parser esegue questo codice?

Probabilmente uno scritto in JavaScript e importato in un altro <script>elemento sulla stessa pagina.



-4

Il codice sopra fa riferimento al progetto Django Jquery File Upload trovato qui https://github.com/sigurdga/django-jquery-file-upload

I {%%} sono tag modello Django. Per maggiori informazioni visita https://docs.djangoproject.com/en/dev/ref/templates/

Questi tag verranno analizzati dal sistema di template django


2
Facendo ulteriori ricerche su questo ho scoperto che la mia risposta era sbagliata. In questo caso i tag sono stati utilizzati da questa libreria Javascript github.com/sigurdga/django-jquery-file-upload/blob/master/… come metodo per visualizzare il contenuto HTML in tempo reale in base al risultato di un'operazione AJAX.
czager

7
Questi tag non sono tag modello Django, ma tag modello Javascript di Sebastian Tschan: blueimp.github.com/JavaScript-Templates
Ricardo Carmo
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.