javascript - 使用 mustache 动态渲染部分模板

标签 javascript ruby templates partial-views

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

我能想到的最好的是:

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

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

我对这种方法并不太感兴趣。 有没有更好的办法?

另请注意, View 的不同类型模型可能具有不相似的字段。我想我总是可以使用最小公分母并让数据哈希包含 html,但我宁愿使用 mustache 模板。

最佳答案

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

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

this["is_" + propertyType] = true

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

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

{{>{{message}} }}

关于javascript - 使用 mustache 动态渲染部分模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2932679/

相关文章:

javascript - jQuery 'scroll' 未触发

ruby - 如何在 Ruby 退出时抑制堆栈跟踪?

c++ - 无法让我的模板工作。非法使用显式模板参数?

javascript - 每 5 秒/间隔运行一次动画

javascript - Google Chrome 控制台在特定网站的每个页面中运行命令

javascript - 在 JSON block 中声明对象及其原型(prototype)

javascript - 将 ruby​​ 插值嵌入到 html 字符串(变量)的 &lt;script&gt; 标签中?

mysql - Rails 按多个表中的属性排序帖子

c++ - 是否可以将一组值传递给可变参数模板声明,类似于斐波那契数列的求解方式

python - Django注册打开其他模板