2010-05-28 87 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}} }}