【问题标题】:Dynamically render partial templates using mustache使用 mustache 动态渲染部分模板
【发布时间】:2011-02-25 08:04:31
【问题描述】:

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

我能想到的最好的是:

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

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

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

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

【问题讨论】:

  • 您找到解决方案了吗?我正在考虑在其中一种逻辑方法中调用Mustache.render 并返回结果。
  • 是的,这就是我开始做的。渲染一个模板并将其注入到变量中。

标签: javascript ruby templates partial-views


【解决方案1】:

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

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

this["is_" + propertyType] = true

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

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

{{>{{message}} }}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 2011-11-26
    • 2015-03-11
    • 1970-01-01
    相关资源
    最近更新 更多