什么是x-tmpl?


86

在网上寻找答案,但找不到任何东西。由于我无法理解,这小小的代码确实让我感到沮丧。(它是名为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
  • 这些{%%}标签是什么?
  • 什么解析器执行此代码?
  • ...

...但想了解所有有关此事的信息。


哎你能告诉我你是怎么与上传数据发送像我想和发送文件的地方
NullPoiиteя

@Mayankswami:我不明白你想问我什么。
Dyin 2012年

我认为您自以来一直使用jquery文件上传。我想知道如何与文件一起发送表格数据。
NullPoiиteя

@Mayankswami:我认为您应该在此站点上搜索问题,如果找不到要查找的内容,请创建一个问题。
Dyin

此相同的代码,我在jQuery的文件上传看到这么一个aksed你先生
NullPoiиteя

Answers:


63

x-tmpl没有真正的意义,它只是阻止浏览器将脚本解释为javascript。

它通常与jquery模板或kickoutjs模板绑定一起使用

在某个时候,一个javascript数据对象将与模板一起使用以呈现一些html。数据对象中的值将替换在模板中标记为{%}且类似的值,其中一些{%}部分反映诸如循环等的代码流。

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


25
我在这里找到了JavaScript模板。该脚本是从此站点引用的。现在这一切都说得通了。谢谢您的回覆!
Dyin 2012年

1
当我使用x-tmpl渲染HTML时,jQuery不起作用。例如,我有一个在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/…使用了标签,作为基于AJAX操作结果实时呈现HTML内容的方法。
czager 2012年

7
这些标签不是Django模板标签,而是Sebastian Tschan的Javascript模板标签:blueimp.github.com/JavaScript-Templates
Ricardo Carmo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.