Искал ответ в сети, но ничего не нашел. Эта небольшая закуска кода меня очень расстраивает, поскольку я не могу ее понять. (Это часть плагина под названием: загрузка файла 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
? - Что это
{%
и%}
теги? - Какой парсер выполняет этот код?
- ...
... но хотелось бы знать об этом все.
Ответы:
x-tmpl не имеет реального значения, он просто мешает браузеру интерпретировать скрипт как javascript.
В основном он используется с шаблонами jquery или привязкой шаблонов knockoutjs .
В какой-то момент объект данных javascript будет использоваться вместе с шаблоном для визуализации некоторого HTML. Значения в объекте данных заменят те, которые отмечены знаком {%} и аналогичные в шаблоне, с некоторыми разделами {%}, отражающими поток кода, например циклы и т. Д.
Я не уверен, какая библиотека шаблонов использует {%}, однако это не шаблоны jquery, jsrender или нокаут. Вам нужно будет проверить, на какие библиотеки есть ссылки в примере кода.
источник
Нестандартный. Хотя похоже на шаблон.
Часть языка шаблонов.
Вероятно, один написан на JavaScript и импортирован в другой
<script>
элемент на той же странице.источник
jQuery-File-Upload
имеет зависимость от того,JavaScript-Templates
что использует нестандартныйtext/x-tmpl
тип пантомимыисточник
Приведенный выше код ссылается на проект Django Jquery File Upload, который можно найти здесь https://github.com/sigurdga/django-jquery-file-upload
{%%} - это теги шаблона Django. Для получения дополнительной информации посетите https://docs.djangoproject.com/en/dev/ref/templates/.
Эти теги будут проанализированы системой шаблонов django.
источник