2010-05-28 92 views
6

有沒有一種方法來動態注入部分模板(並在Ruby的兩個Ruby & Javascript中以相同的方式工作)?基本上,我試圖在列表中呈現不同類型的對象。使用小鬍子動態渲染部分模板

我能想出的最好的是這樣的:

<div class="items"> 
{{#items}} 
<div class="item"> 
    {{#is_message}} 
    {{> message}} 
    {{/is_message}} 

    {{#is_picture}} 
    {{> picture}} 
    {{/is_picture}} 
</div> 
{{/items}} 
</div> 

我不是超級激動對這種做法。 有沒有更好的方法?

另請注意,不同類型的視圖模型可能具有不相似的字段。我想我總是可以去最低公分母,並有數據散列包含HTML,但我寧願使用鬍子模板。

+1

你有沒有找到解決方案?我正在考慮在其中一個邏輯方法中調用'Mustache.render'並返回結果。 – Jeremy 2010-11-21 13:46:06

+0

是的,這就是我開始做的事情。渲染一個模板並將其注入到變量中。 – 2011-03-08 21:53:53

回答

1

我沒有你做同樣的事情,併爲每個屬性類型,我需要在在模板中所呈現的JS數據模型動態部分,我只是設置一個動態變量...

eval("this.set({is_" + this.get("propertyType") + ": true})") 

this["is_" + propertyType] = true 

至少我不必手動設置「is_whatever」變量...

這將是冷靜,如果mustache.js或ICanHaz.js不得不爲DY一些聰明的語法鬍子標籤內部的標稱屬性......可能是這樣的:

{{>{{message}} }}