【问题标题】:How do I reference a field name that contains a dot in mustache template?如何在 mustache 模板中引用包含点的字段名称?
【发布时间】:2013-01-31 20:09:51
【问题描述】:

如何在 mustache 模板中引用包含点的字段名称?例如,如果我有像

这样的视图
{
  "foo.bar": "my value"
}

那么我怎样才能将my value 放入模板中?使用 {{foo.bar}} 不起作用,因为 mustache 认为点是路径的一部分,就像应该有一个带有“bar”的“foo”。

【问题讨论】:

  • 将属性重构为foo_bar 会更容易。没有解决方案?

标签: template-engine mustache


【解决方案1】:

您无法从 Mustache 读取带有 . 的密钥。 Mustache 规范规定. 用于拆分内容名称。 Mustache 提供了一种转义方式,但仅适用于 HTML 内容。

胡须规格:interpolation

您需要对数据进行预处理,使其可用于 Mustache 模板。您如何做到这一点将取决于问题的广泛性。

我找到了一个用 JavaScript 重新映射属性的简单示例,由 Jon 编写:

function rename(obj, oldName, newName) {
    if(!obj.hasOwnProperty(oldName)) {
        return false;
    }

    obj[newName] = obj[oldName];
    delete obj[oldName];
    return true;
}

来源:Rename the keys… in an object

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多