Согласно do c, это невозможно:
Lambdas
Когда значение является вызываемым объектом, например функцией или лямбда, объект будет вызван и передан блок текста. Переданный текст является буквенным блоком, не обработанным. {{tags}} расширяться не будет - лямбда должна делать это самостоятельно. Таким способом вы можете реализовать фильтры или кэширование.
Однако, поскольку вы можете использовать функции для рендеринга, легко включить сообщение в вашу визуализированную функцию:
let view = {
message: "message in a bottle ?",
body() {
return `<p> this is a ${this.message}. </p>`
}
}
let output = Mustache.render("{{{ body }}}", view)
console.log(output)
<script src="https://cdn.jsdelivr.net/gh/janl/mustache.js@v3.1.0/mustache.min.js"></script>
Если ваша цель состоит только в том, чтобы обернуть ваше тело в <p>
, то самое элегантное (и подходящее для do c) решение будет:
let view = {
message: "message in a bottle ?",
body() {
return (text, render) => `<p>${render(text)}</p>`
}
}
let output = Mustache.render(`
{{#body}}
This is a {{message}}.
{{/body}}
`, view)
console.log(output)
<script src="https://cdn.jsdelivr.net/gh/janl/mustache.js@v3.1.0/mustache.min.js"></script>