2010-12-10 16 views
9

Mustache.js ile ilk defa çalışıyorum. Bulduğum tüm örnekler, her şeyi satır içi koyma hakkında konuşuyor gibi görünüyor, ancak şablonlarımın harici dosyalarda olmasını istiyorum, böylece birden çok yerde kullanılabilirler. Bunu nasıl yaparım? (. Bu bir fark yaparsa ben, benim yığınında jQuery var)mustache.js şablon dosyamı nasıl alabilirim?

yüzden olduğunu varsayalım:

template.html

{{title}} spends {{calc}} 

data.js

var data = { title: "Joe", calc: function() { return 2 + 4; } }; 

index.html

<script type="text/javascript" src="data.js"></script> 

<div id="target"></div> 

<script type="text/javascript"> 
    var template = ?????? // how do I attach the template? 
    var html = Mustache().to_html(template, data); 
    $('#target')[0].innerHTML = html; 
</script> 

cevap

1
template = $('.template').val(); 
Ayrıca doğrudan sayfanıza birden şablonlar kullanılabilir hale getirdik

<textarea class="template"> 
<h1>{{header}}</h1> 
{{#bug}} 
{{/bug}} 

{{#items}} 
    {{#first}} 
    <li><strong>{{name}}</strong></li> 
    {{/first}} 
    {{#link}} 
    <li><a href="{{url}}">{{name}}</a></li> 
    {{/link}} 
{{/items}} 

{{#empty}} 
    <p>The list is empty.</p> 
{{/empty}} 
</textarea> 

şablonunuzu DOM olduğunu

... ... tüm sayfa şablonu ise

<script id="yourTemplate" type="text/x-jquery-tmpl"> 
    {{tmpl "#yourTemplate"}} 
    <div>Something: ${TemplateValue}</div> 
</script> 
+0

Ah, ilgilenir misin muhtemelen $ ('body') kullanın val(); – DaveN

+1

Ancak şablon harici bir dosyada! tüm nokta budur. Ben almak için ajax çağrı yapabilirim sanırım, ama daha iyi bir yolu var mı diye merak ediyorum .... – sprugman

+2

Ah tamam, evet, almak için AJAX ve onSuccess, şablon varlığına cevabı atayım. – DaveN

İlgili konular