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

Bri*_*ita 6 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>
Run Code Online (Sandbox Code Playgroud)

我对这种方法并不十分兴奋.有没有更好的办法?

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

小智 2

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

eval("this.set({is_" + this.get("propertyType") + ": true})")
Run Code Online (Sandbox Code Playgroud)

或者

this["is_" + propertyType] = true
Run Code Online (Sandbox Code Playgroud)

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

如果 Mustache.js 或 ICanHaz.js 对于 Mustache 标签内的动态属性有一些巧妙的语法,那就太酷了……也许是这样的:

{{>{{message}} }}
Run Code Online (Sandbox Code Playgroud)