使用java在mustache模板中如何使用Lambda以及什么是使用

问题描述 投票:0回答:1

我的任务是使用 Mustache 模板引擎来渲染模板,同时研究如何使用它,我偶然发现了 lambda,但我仍然无法捕捉到

例如,在官方小胡子文档中提到用法是

Template:

{{#wrapped}}{{name}} is awesome.{{/wrapped}}

Hash:

{
  "name": "Willy",
  "wrapped": function(text) {
    return "<b>" + text + "</b>"
  }
}

Output:

<b> Willy is awesome.</b>

所以预期的输出是 Willy 很棒 但我在这里无法得到与我通过的相同的输出

{
    "tId": "function",
    "data": {
        "name": "Vishnu",
        "wrapped": "function(text) { return \"<b>\" + text + \"</b>\"; }",
}
}

尽管模板都是一样的,但除了标签之外,我只得到“Vishnu 太棒了”。我到底应该得到什么?粗体文本或带标签的文本

我在这里遗漏了什么吗? lambda 在此模板引擎中如何工作以及有何作用?

以类似的方式,同一文档中的其他示例不起作用

Template:

* {{time.hour}}
* {{today}}

Hash:

{
  "year": 1970,
  "month": 1,
  "day": 1,
  "time": function() {
    return {
      "hour": 0,
      "minute": 0,
      "second": 0
    }
  },
  "today": function() {
    return "{{year}}-{{month}}-{{day}}"
  }
}

Output:

* 0
* 1970-1-1

我得到的输出是

function() {return ("{{year}}-{{month}}-{{day}}";)}
当我将 JSON 作为
 \ "time": "function() { return {\"hour\": 0,\"minute\": 0,      \"second\": 0}  };", "today": "function() {return (\"{{year}}-{{month}}-{{day}}\";)}" \

传递时

参考文档:https://mustache.github.io/mustache.5.html

在一些文档中,例如这个https://www.c-sharpcorner.com/article/getting-started-with-mustache-js/提到了

Lambda 用于在将数据插入模板之前对其进行转换。 lambda 是一个接受字符串作为输入并返回字符串作为输出的函数。

这是什么意思?我想要一个简单的解释 我还需要了解如何在 JSON 中传递这个 lambda ? 非常感谢任何帮助

java spring templates mustache
1个回答
0
投票

如果您使用 Java,则无法在 JavaScript 中定义标签。

这篇文章可以帮助您:https://www.baeldung.com/mustache

© www.soinside.com 2019 - 2024. All rights reserved.