Что такое x-tmpl?


86

Искал ответ в сети, но ничего не нашел. Эта небольшая закуска кода меня очень расстраивает, поскольку я не могу ее понять. (Это часть плагина под названием: загрузка файла jQuery)

<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>
  • Итак, что это за тип text/x-tmpl?
  • Что это {%и %}теги?
  • Какой парсер выполняет этот код?
  • ...

... но хотелось бы знать об этом все.


эй, не могли бы вы мне сказать, как вы отправили данные с загрузкой, как будто я хочу отправить место с файлом
NullPoiиteя

@Mayankswami: Я не понимаю, о чем вы пытаетесь у меня спросить.
Dyin

Я думаю, с тех пор вы использовали загрузку файла jquery. Я хочу знать, как отправить данные формы с файлом.
NullPoiиteя

@Mayankswami: Я думаю, вам следует поискать свой вопрос на этом сайте, и если вы не найдете то, что ищете, создайте вопрос.
Dyin

тот же код, который я видел в загрузчике файлов jquery, так что благодарю вас, сэр
NullPoiиteя

Ответы:


63

x-tmpl не имеет реального значения, он просто мешает браузеру интерпретировать скрипт как javascript.

В основном он используется с шаблонами jquery или привязкой шаблонов knockoutjs .

В какой-то момент объект данных javascript будет использоваться вместе с шаблоном для визуализации некоторого HTML. Значения в объекте данных заменят те, которые отмечены знаком {%} и аналогичные в шаблоне, с некоторыми разделами {%}, отражающими поток кода, например циклы и т. Д.

Я не уверен, какая библиотека шаблонов использует {%}, однако это не шаблоны jquery, jsrender или нокаут. Вам нужно будет проверить, на какие библиотеки есть ссылки в примере кода.


25
Я нашел здесь шаблоны JavaScript . Сценарий ссылается на этот сайт. Теперь все имеет смысл. Спасибо за приготовление!
Dyin

1
jQuery не работал, когда я рендерил HTML с помощью x-tmpl. Например, у меня есть флажок для рендеринга внутри x-tmpl. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </label>. Скрипт добавлен внутри html файла. Например, <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': checked')) {alert ('hi');} else {alert ('hello');}} </script>
502_Geek

11

Итак, что это за тип text / x-tmpl?

Нестандартный. Хотя похоже на шаблон.

Что это за теги {% и%}?

Часть языка шаблонов.

Какой парсер выполняет этот код?

Вероятно, один написан на JavaScript и импортирован в другой <script>элемент на той же странице.



-4

Приведенный выше код ссылается на проект Django Jquery File Upload, который можно найти здесь https://github.com/sigurdga/django-jquery-file-upload

{%%} - это теги шаблона Django. Для получения дополнительной информации посетите https://docs.djangoproject.com/en/dev/ref/templates/.

Эти теги будут проанализированы системой шаблонов django.


2
Проведя еще несколько исследований по этому поводу, я обнаружил, что мой ответ был неправильным. В этом случае теги используются этой библиотекой Javascript github.com/sigurdga/django-jquery-file-upload/blob/master/… в качестве метода визуализации содержимого HTML в реальном времени на основе результата операции AJAX.
czager 05

7
Эти теги не являются тегами шаблонов Django, а являются тегами шаблонов Javascript Себастьяна Чана: blueimp.github.com/JavaScript-Templates
Ricardo Carmo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.