X-tmpl nedir?


87

İnternette cevabı arıyordu ama hiçbir şey bulamadı. Bu küçük kod atıştırması, anlayamadığım için beni gerçekten sinirlendiriyor. (JQuery Dosya Yükleme adlı eklentinin bir parçasıdır)

<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>
  • Peki ne tür text/x-tmpl?
  • Bunlar {%ve %}etiketler nelerdir?
  • Bu kodu hangi ayrıştırıcı yürütür?
  • ...

... ama bununla ilgili her şeyi bilmek isterim.


hey, yeri dosyayla birlikte göndermek istediğim gibi yüklemeyle nasıl veri gönderdiğini söyler misin
NullPoiиteя

@Mayankswami: Benden sormaya çalıştığınız şeyi anlamıyorum.
Dyin

o zamandan beri jquery dosyası yüklemesini kullandığınızı düşünüyorum. dosya ile form verilerinin nasıl gönderileceğini bilmek istiyorum.
NullPoiиteя

@Mayankswami: Sorunuzu bu sitede aramanız gerektiğini düşünüyorum ve aradığınızı bulamazsanız bir soru oluşturun.
Dyin

jquery dosya yükleyicisinde gördüğüm bu kodun aynısı size sordu efendim
NullPoiиteя

Yanıtlar:


64

x-tmpl'nin gerçek bir anlamı yoktur, sadece tarayıcının komut dosyasını javascript olarak yorumlamasını durdurur.

Çoğunlukla jquery şablonları veya knockoutjs şablon bağlama ile kullanılır .

Bir noktada, bir miktar html oluşturmak için şablonla birlikte bir javascript veri nesnesi kullanılacaktır. Veri nesnesindeki değerler şablonda {%} ile işaretlenen ve benzer olanların yerini alacak ve döngüler vb. Gibi kod akışını yansıtan bazı {%} bölümler ile değiştirilecektir.

Hangi şablon kitaplığının {%} kullandığından emin değilim, ancak bu jquery şablonları, jsrender veya nakavt değil. Örnek kodda hangi kitaplıklara başvurulduğunu kontrol etmeniz gerekir.


25
Burada JavaScript Şablonları buldum . Komut dosyasına bu siteden referans verilmiştir. Şimdi her şey mantıklı. Brefing için teşekkürler!
Dyin

1
x-tmpl ile HTML oluşturduğumda jQuery çalışmıyor. Örneğin, x-tmpl içinde işleyen bir onay kutum var. <label class = "modifiericon btn"> <input type = "checkbox" id = 'seo'> SEO </label>. Komut dosyası html dosyasının içine eklendi. Örneğin <script type = "text / javascript"> $ ('# seo'). Change (function () {if ($ (this) .is (': check')) {alert ('hi');} else {alert ('merhaba');}} </script>
502_Geek

12

Peki, text / x-tmpl türü nedir?

Standart olmayan. Yine de bir şablona benziyor.

Bu {% ve%} etiketleri nelerdir?

Şablon dilinin bir parçası.

Bu kodu hangi ayrıştırıcı yürütür?

Muhtemelen biri JavaScript ile yazılmış ve <script>aynı sayfadaki başka bir öğeye aktarılmıştır .



-3

Yukarıdaki kod, https://github.com/sigurdga/django-jquery-file-upload burada bulunan Django Jquery Dosya Yükleme projesine atıfta bulunur.

{%%}, Django şablon etiketleridir. Daha fazla bilgi için https://docs.djangoproject.com/en/dev/ref/templates/ adresini ziyaret edin.

Bu etiketler django şablonlama sistemi tarafından ayrıştırılacaktır.


2
Bununla ilgili biraz daha araştırma yaparak cevabımın yanlış olduğunu anladım. Bu durumda etiketler, bu Javascript kitaplığı github.com/sigurdga/django-jquery-file-upload/blob/master/… tarafından , bir AJAX işleminin sonucuna göre gerçek zamanlı olarak HTML içeriği oluşturmak için bir yöntem olarak kullanılır .
czager

7
Bu etiketler Django şablon etiketleri değil, Sebastian Tschan tarafından yazılan Javascript Şablon Etiketleri: blueimp.github.com/JavaScript-Templates
Ricardo Carmo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.