2012-12-27 17 views
54

jQuery Şablonları şimdilik bir süredir kullanımdan kaldırılmıştır.2012 için önerilen jQuery şablonları

HTML olarak biçimlendirmek ve DOM'a eklemek istediğim bir JavaScript nesnesi biçiminde bazı verilerim var. Bugünlerde bunu yapmanın en iyi yolu nedir?

  1. HTML dizesi oluşturmalı mıyım?
  2. jQuery aracılığıyla $('<li>',{id:'my-'+Id}).append($('<span>').text(myText)) gibi öğeler oluşturmalı mıyım?
  3. jQuery şablonları için yedek veya olgun bir yedek var mı?
+4

[API dosyaları] (http://api.jquery.com/jquery.tmpl/) görünüşe göre daha kaldırıldığını, onlar bu özellik "beta" derler. – bfavaretto

+0

@bfavaretto: Yep. [Burada] (https://github.com/jquery/jquery-tmpl), beta sürümünü geçmediklerini söylüyor. – mpen

+2

Üç seçeneğiniz için bazı performans testi [sonuçları] (http://jsperf.com/2dom-manipulation-js-templating-vs-programatic-jquery). – sfk

cevap

10

Kesinlikle Handlebars denemelisiniz ve/veya Mustache

Ben Gidonu kullanma eğiliminde ancak sözdizimi oldukça benzer.

104

Bu benim projelerde böyle yaparız:

var cardTemplate = $("#cardTemplate").html(); 
var template = cardTemplate.format("http://example.com", "Link Title"); 
$("#container").append(template); 

string.format: değişkenleri yerine

<script type="text/template" id="cardTemplate"> 
<div> 
    <a href="{0}">{1}</a> 
</div> 
</script> 

Kullanım String.format:

HTML'nize bir şablon tanımla

String.prototype.format = function() { 
    var args = arguments; 
    return this.replace(/{(\d+)}/g, function(match, number) { 
    return typeof args[number] != 'undefined' 
     ? args[number] 
     : match 
    ; 
    }); 
}; 

Oldukça basit, şablonları birleştirebilirsiniz bile.

+6

Gerektiğinde HTML'den nasıl kaçıyorsunuz? Örneğinizde '{0}' bir çift alıntı içeriyorsa, sadece HTML'nizi havaya uçurdu. – mpen

+3

@Mark 'escape()' diyebilirdiniz.Birkaç küçük şablondan daha fazlasını yapmam gerekirse kesinlikle daha sağlam bir şey arardım. Ben sadece burada olduğu gibi yararlı olabilecek bir şeyin bir örneği olarak buraya koydum. – sachleen

+0

müthiş .. bir şüphe olsa .. neden

7

Şablonlar, JSON'u el ile ayrıştırmaya çalışmaktan çok daha kolay. Buna katkıda bulunduğumdan beri, şablonların derlenmesini gerektirmediği için Json2html'ye kısmi davranıyorum ve JSON ve JavaScript'ten başka bir şey kullanmıyorum.

http://json2html.com

+0

Burada belirtilenlerin dışında, en iyisi bunu beğeniyorum. Teşekkürler! – bdwakefield

İlgili konular