使用小胡子动态渲染部分模板

时间:2010-05-28 21:34:18

标签: javascript ruby templates partial-views

有没有办法动态注入部分模板(并在Ruby和Javascript中以相同的方式工作)?基本上,我正在尝试在列表中呈现不同类型的对象。

我能想出的最好的是:

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

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

我对这种方法并不十分兴奋。 还有更好的方法吗?

另请注意,视图的不同类型的模型可以具有不相似的字段。我想我总是可以去最低的公分母,并且数据哈希包含html,但是我宁愿使用胡子模板。

1 个答案:

答案 0 :(得分:1)

我做了同样的事情,对于每个属性类型,我需要动态部分,我只是在js数据模型中设置一个动态变量,在模板中呈现...

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

this["is_" + propertyType] = true

至少我不必手动设置'is_whatever'变量......

如果mustache.js或ICanHaz.js对胡须标签内部的动态属性有一些聪明的语法,那会很酷......可能是这样的:

{{>{{message}} }}