鬍鬚(http://mustache.github.com/)是沒有一個超級簡單的模板語言邏輯什麼的。它在Javascript和Ruby中都有實現,因此模板可以在任何環境中呈現。
使用比RJS(或類似的模板語言)有點棘手。由於模板中沒有邏輯,所以JSON對象必須擴展以提供更復雜的行爲。
下面是一些例子標記:
<div id="person_image"><img src="{{avatar_url}}"></img></div>
<div class="info">
<div id="person_location">{{location}}</div>
<h2 class="name">{{name}}</h2>
<div id="person_positions">
<ul class="positions">
{{#positions}}
<li>{{company_name}} — {{title}}</li>
{{/positions}}
</ul>
</div>
<div id="person_social_links">
<div class="social-profiles research-links">
{{#links}}
<a href="{{url}}" class="branded" target="_blank" style="background-image:url(https://www.google.com/s2/favicons?domain={{name}})"></a>
{{/links}}
</div>
</div>
</div>
這會使這個對象:
{
"id":"4c0578d940cfd305ff00011c",
"name":"Steve Someguy",
"location":"Austin, Texas, United States",
"positions":[
{"title":"CEO", "company_name":"ACME, Inc.", "company_id":null},
{"title":"Director", "company_name":"Capsasin, Inc.", "company_id":"4c0578d940cfd305ff00011c"}
],
"links":[
{"name":"twitter.com","url":"http://twitter.com/spicyjs","image_url":"http://a3.twimg.com/profile_images/439463427/Picture_7_bigger.png"},
{"name":"twitter.com","url":"http://twitter.com/shadr","image_url":"http://a1.twimg.com/profile_images/20072132/me.jpg"},
{"name":"facebook.com","url":"http://facebook.com/shad.reynolds","image_url":"http://www.facebook.com/profile/pic.php?uid=AAAAAQAQm2JvEZLOpW8bCG-rToD8VQAAAAlFjZG9cIKwaX2wuA_Nspjn"}
]
}
Handlebars.js是一個相關的項目,該項目還獲得了一些牽引力,雖然Ruby實現不似乎是完整的(http://yehudakatz.com/2010/09/09/announcing-handlebars-js/)。
因此,對我而言,您看起來像是在尋找一種客戶端Javascript模板引擎,它可以理解您的RJS模板語法。這是否準確? – Pointy 2010-10-13 16:15:37
你可能想看看TrimPath – Dapeng 2010-10-16 04:41:12