什么是x-tmpl?

正在网上寻找答案,但找不到任何东西。 这个小小小小的代码真的使我感到沮丧,因为我无法理解它。 (它是名为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> 
  • 那么, text/x-tmpl是什么types?
  • 这些{%%}标签是什么?
  • 什么parsing器执行这个代码?

…但想知道这一切。

x-tmpl没有实际意义,它只是停止浏览器将脚本解释为javascript。

它主要用于jQuery模板或knockoutjs模板绑定 。

在某些时候,JavaScript数据对象将与模板一起使用来呈现一些html。 数据对象中的值将replace模板中标有{%}和类似标记的值,以及一些反映代码stream的{%}部分,例如循环等。

我不确定哪个模板库使用{%},但它不是jQuery模板,jsrender或淘汰赛。 您必须检查示例代码中正在引用的库。

那么,text / x-tmpl是什么types?

一个非标准的。 看起来像一个模板虽然。

这些{%和%}标签是什么?

模板语言的一部分。

什么parsing器执行这个代码?

可能是一个用JavaScript编写,并导入同一页上的另一个<script>元素。

上面的代码引用项目Django的jqueryfile upload在这里findhttps://github.com/sigurdga/django-jquery-file-upload

{%%}是Django模板标签。 有关更多信息,请访问https://docs.djangoproject.com/en/dev/ref/templates/

这些标签将被django模板系统parsing