Код: Выделить всё
Template:
{{#wrapped}}{{name}} is awesome.{{/wrapped}}
Hash:
{
"name": "Willy",
"wrapped": function(text) {
return "" + text + "[/b]"[b] }
}
Output:
Willy is awesome.[/b][b]Код: Выделить всё
{
"tId": "function",
"data": {
"name": "Vishnu",
"wrapped": "function(text) { return \"\" + text + \"[/b]\"; }",
}
}
Я что-то упустил? Как и как работают лямбды в этом шаблонизаторе?
Аналогично не работает другой пример в той же документации
Код: Выделить всё
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
Ссылаемая документация: https://mustache.github.io/mustache.5.html
В некоторых документах, например, https://www.c- Sharpcorner.com/article/getting-started-with-mustache-js/ упоминает, что
лямбда-выражения используются для преобразования данных перед их вставкой в шаблон. Лямбда — это функция, которая принимает строку в качестве входных данных и возвращает строку в качестве выходных данных.
ОБНОВЛЕНИЕ 1 :
В большинстве решений указано, что я имею в виду документ шаблона усов на основе JS, поэтому я удалил его
ОБНОВЛЕНИЕ 2
Во введении к Mustache пример для лямбды все еще расплывчат. Мне удалось получить перечисленные задачи, но я все еще не могу заставить работать лямбда-функцию. Я пытаюсь передать следующий JSON в качестве входных данных
Код: Выделить всё
{
"tId": "test",
"data": {
"todos": [
{
"handleDone" : "handleDone",
"title": "Task 1",
"doneSince": 5,
"done" : true
},
{
"handleDone" : "handleDone",
"title": "Task 1",
"doneSince": 5,
"done" : true
},
{
"handleDone" : "handleDone",
"title": "Task 1",
"doneSince": 5,
"done" : true
}
]
}
}
Код: Выделить всё
if (templateId.equalsIgnoreCase("test")) {
Object doneSinceValue = value;
Map templateData2 = new HashMap();
templateData2.put(key, handleDone);
Mustache mustache = mustacheFactory.compile(new StringReader(dataRcvd.trim()), "main");
mustache.execute(writer, templateData2).flush();
}
// Changed the code
Function handleDone = (obj) -> done ? String.format("Done %s minutes ago", obj) : "";
}
Сервисный уровень приложения, в котором существует ссылка на Github.
Что это делает иметь в виду ? Мне бы хотелось получить упрощенное объяснение того же самого.
Также мне нужно понять, как передать эту лямбду в JSON?
Любая помощь приветствуется
Подробнее здесь: https://stackoverflow.com/questions/785 ... using-java