Co to jest x-tmpl?


86

Szukałem odpowiedzi w sieci, ale nie mogłem nic znaleźć. Ta mała przekąska kodu naprawdę mnie frustruje, ponieważ nie mogę jej zrozumieć. (Jest to część wtyczki o nazwie: 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>
  • Więc jaki to typ text/x-tmpl?
  • Co to jest {%i co to jest %}?
  • Jaki parser wykonuje ten kod?
  • ...

... ale chciałbym wiedzieć wszystko na ten temat.


hej, czy możesz mi powiedzieć, w jaki sposób wysłałeś dane z przesyłaniem, na przykład chcę wysłać miejsce z plikiem
NullPoiиteя

@Mayankswami: Nie rozumiem, o co próbujesz mnie zapytać.
Dyin

Myślę, że od tego czasu korzystałeś z przesyłania pliku jquery. Chcę wiedzieć, jak wysłać dane formularza z plikiem.
NullPoiиteя

@Mayankswami: Myślę, że powinieneś poszukać swojego pytania na tej stronie, a jeśli nie znajdziesz tego, czego szukasz, utwórz je.
Dyin

ten sam kod, który widziałem w programie do przesyłania plików jquery, więc zapytałem pana
NullPoiиteя

Odpowiedzi:


63

x-tmpl nie ma prawdziwego znaczenia, po prostu powstrzymuje przeglądarkę przed interpretacją skryptu jako javascript.

Jest używany głównie z szablonami jquery lub wiązaniem szablonów knockoutjs .

W pewnym momencie obiekt danych javascript zostanie użyty w połączeniu z szablonem do renderowania kodu HTML. Wartości w obiekcie danych zastąpią wartości oznaczone przez {%} i podobne w szablonie, z niektórymi sekcjami {%} odzwierciedlającymi przepływ kodu, na przykład pętle itp.

Nie jestem pewien, która biblioteka szablonów używa {%}, jednak nie jest to szablony jquery, jsrender czy knockout. Trzeba by sprawdzić, do jakich bibliotek odwołuje się przykładowy kod.


25
Znalazłem to tutaj Szablony JavaScript . Odwołanie do skryptu pochodzi z tej witryny. Teraz to wszystko ma sens. Dziękuję za spotkanie!
Dyin

1
jQuery nie działa, kiedy renderuję HTML za pomocą x-tmpl. Na przykład mam pole wyboru, które renderuje się wewnątrz x-tmpl. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </label>. Skrypt dodany w pliku html. Na przykład <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': check')) {alert ('hi');} else {alert ('hello');}} </script>
502_Geek

11

Więc jaki typ to text / x-tmpl?

Niestandardowy. Wygląda jednak na szablon.

Co to za tagi {% i%}?

Część języka szablonów.

Jaki parser wykonuje ten kod?

Prawdopodobnie jeden napisany w JavaScript i zaimportowany w innym <script> elemencie na tej samej stronie.



-4

Powyższy kod odwołuje się do projektu Django Jquery File Upload znajdującego się tutaj https://github.com/sigurdga/django-jquery-file-upload

{%%} To tagi szablonu Django. Aby uzyskać więcej informacji, odwiedź https://docs.djangoproject.com/en/dev/ref/templates/

Te znaczniki zostaną przeanalizowane przez system szablonów django


2
Po dokładniejszym zbadaniu tego stwierdziłem, że moja odpowiedź była błędna. W tym przypadku tagi są używane przez bibliotekę Javascript github.com/sigurdga/django-jquery-file-upload/blob/master/… jako metoda renderowania treści HTML w czasie rzeczywistym na podstawie wyniku operacji AJAX.
czager

7
Te tagi nie są tagami szablonu Django, ale tagami szablonu JavaScript autorstwa Sebastiana Tschana: blueimp.github.com/JavaScript-Templates
Ricardo Carmo
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.