2012-04-05 9 views
81

Cercavo la risposta in rete, ma non ho trovato nulla. Questo piccolo spuntino di codice mi frustra davvero, perché non riesco a capirlo. (E 'parte del plugin chiamato: jQuery File Upload)Che cos'è x-tmpl?

<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> 
  • Quindi, che tipo è text/x-tmpl?
  • Cosa sono questi tag {% e %}?
  • Quale parser esegue questo codice?
  • ...

... ma vorrebbe sapere tutto di questo.

+0

hey sarebbe dirmi come hai inviato i dati con il caricamento come voglio inviare il posto con il file –

+0

@Mayankswami: I non capisco quello che stai cercando di chiedermi. – Dyin

+0

Penso che tu abbia usato il caricamento del file jquery da allora. Voglio sapere come inviare i dati del modulo con il file. –

risposta

60

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

Viene utilizzato principalmente con modelli jquery o knockoutjs template binding.

A un certo punto, un oggetto dati javascript verrà utilizzato insieme al modello per 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 loop ecc.

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

+24

L'ho trovato qui [Modelli JavaScript] (http://blueimp.github.com/JavaScript-Templates/). Lo script è stato referenziato da questo sito. Ora tutto ha un senso. Grazie per il tuo brefing! – 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. . Lo script aggiunto nel file html. Ad esempio

11

Quindi, che tipo è testo/x-tmpl?

Uno non standard. Sembra un modello però.

Quali sono questi tag {% e%}?

Parte del linguaggio modello.

Quale parser esegue questo codice?

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

-3

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

La {%%} sono Django tag modello. Per ulteriori informazioni visitare https://docs.djangoproject.com/en/dev/ref/templates/

Questi tag saranno analizzati dal sistema di template Django

+2

Facendo qualche altra ricerca su questo ho scoperto che la mia risposta era sbagliata In questo caso i tag sono stati utilizzati da questa libreria Javascript https://github.com/sigurdga /django-jquery-file-upload/blob/master/fileupload/static/js/tmpl.min.js come metodo per il rendering di contenuto HTML in tempo reale in base al risultato di un'operazione AJAX – czager

+7

Questi tag non sono tag modello Django , ma Javascript Template Tags di Sebastian Tschan: http://blueimp.github.com/JavaScript-Templates/ –

Problemi correlati