在网上寻找答案,却找不到任何答案。这个代码小点真让我感到沮丧,因为我无法理解。 (它是插件的一部分: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
是什么类型的?{%
和%}
代码是什么?...但想知道关于此的一切。
答案 0 :(得分:62)
x-tmpl没有实际意义,它只是阻止浏览器将脚本解释为javascript。
它主要用于jquery模板或knockoutjs template binding。
在某些时候,javascript数据对象将与模板一起使用以呈现一些html。数据对象中的值将替换模板中标有{%}和类似值的值,其中一些{%}部分反映代码流,如循环等。
我不确定哪个模板库使用{%}但是,它不是jquery模板,jsrender或knockout。您必须检查示例代码中引用的库。
答案 1 :(得分:11)
那么,text / x-tmpl是什么类型的?
非标准的。看起来像是一个模板。
这些{%和%}代码是什么?
模板语言的一部分。
什么解析器执行此代码?
可能是用JavaScript编写的,并在同一页面上的另一个<script>
元素中导入。
答案 2 :(得分:0)
jQuery-File-Upload
依赖于JavaScript-Templates
,后者使用非标准的text/x-tmpl
哑剧类型
答案 3 :(得分:-4)
上面的代码引用了这里的项目Django Jquery File Upload https://github.com/sigurdga/django-jquery-file-upload
{%%}是Django模板标签。有关更多信息,请访问https://docs.djangoproject.com/en/dev/ref/templates/
这些标签将由django模板系统
解析