O que é x-tmpl?

86

Estava procurando a resposta na rede, mas não encontrava nada. Esse pequeno pedaço de código realmente me frustra, pois não consigo entender. (Faz parte do plugin chamado: 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>
  • Então, que tipo é text/x-tmpl?
  • O que são essas tags {%e %}?
  • Qual analisador executa este código?
  • ...

... mas gostaria de saber tudo sobre isso.

Dyin
fonte
ei, você poderia me dizer como você enviou os dados com o upload como eu quero enviar o local com o arquivo
NullPoiиteя
@Mayankswami: Não entendo o que você está tentando pedir de mim.
Dia
Acho que você usou o upload de arquivo jquery desde então. quero saber como enviar dados de formulário com o arquivo.
NullPoiиteя
@Mayankswami: Acho que você deveria pesquisar sua pergunta neste site e, se não encontrar o que está procurando, crie uma pergunta.
Dia
este mesmo código que eu vi no uploader de arquivo jquery então aksed a você senhor
NullPoiиteя

Respostas:

63

x-tmpl não tem nenhum significado real, ele simplesmente impede o navegador de interpretar o script como javascript.

É usado principalmente com modelos jquery ou vinculação de modelos knockoutjs .

Em algum ponto, um objeto de dados javascript será usado em conjunto com o modelo para renderizar algum html. Os valores no objeto de dados substituirão aqueles marcados com {%} e semelhantes no modelo, com algumas seções {%} refletindo o fluxo do código, como loops etc.

Não tenho certeza de qual biblioteca de modelos usa {%}, no entanto, não é jquery templates, jsrender ou knockout. Você teria que verificar quais bibliotecas estão sendo referenciadas no código de amostra.

NibblyPig
fonte
25
Encontrei aqui JavaScript Templates . O script foi referenciado a partir deste site. agora tudo faz sentido. Obrigado pelo seu brefing!
Dia
1
jQuery não funcionou quando renderizo HTML com x-tmpl. Por exemplo, tenho uma caixa de seleção que processa dentro de x-tmpl. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </label>. O script adicionado dentro do arquivo html. Por exemplo <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': checked')) {alert ('hi');} else {alert ('hello');}} </script>
502_Geek
11

Então, que tipo é text / x-tmpl?

Um fora do padrão. Mas parece um modelo.

O que são essas tags {% e%}?

Parte da linguagem do modelo.

Qual analisador executa este código?

Provavelmente um escrito em JavaScript e importado em outro <script>elemento na mesma página.

Quentin
fonte
-4

O código acima faz referência ao projeto Django Jquery File Upload encontrado aqui https://github.com/sigurdga/django-jquery-file-upload

Os {%%} são tags de template Django. Para obter mais informações, visite https://docs.djangoproject.com/en/dev/ref/templates/

Essas tags serão analisadas pelo sistema de modelos django

czager
fonte
2
Fazendo mais pesquisas sobre isso, descobri que minha resposta estava errada. Neste caso, as tags são usadas por esta biblioteca Javascript github.com/sigurdga/django-jquery-file-upload/blob/master/… como um método para renderizar conteúdo HTML em tempo real com base no resultado de uma operação AJAX.
czager
7
Essas tags não são tags de modelo Django, mas tags de modelo Javascript de Sebastian Tschan: blueimp.github.com/JavaScript-Templates
Ricardo Carmo