什么是x-tmpl?

时间:2012-04-05 09:15:20

标签: html

在网上寻找答案,却找不到任何答案。这个代码小点真让我感到沮丧,因为我无法理解。 (它是插件的一部分: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是什么类型的?
  • 这些{%%}代码是什么?
  • 什么解析器执行此代码?
  • ...

...但想知道关于此的一切。

4 个答案:

答案 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模板系统

解析