Есть ли в Mustache какой-либо способ ограничения количества символов, которые генерирует тег Mustache?
например
template = "<li>{{my_tag}}</li>"
data = {
"my_tag" : "A very long string that needs to be abbreviated to fit into the available space."
}
Теперь, когда я отображаю свой тег, я хочу сократить длинную строку допоказывая только первые 10 символов с последующим многоточием.Я рассмотрел использование лямбда-функции (как описано в документации по Mustache) примерно так ...
template = "<li>{{#limitLength}}{{my_tag}}{{/limitLength}}</li>"
data = {
"limitLength" : function() {
return function(text) {
return text.substr(0,10) + '...';
}
},
"my_tag" : "A very long string that needs to be abbreviated to fit into the available space."
}
, но, к сожалению, тег {{my_tag}} не раскрывается.В руководстве «Усы» говорится:
Переданный текст является буквенным блоком без разметки.{{tags}} не будет расширен - лямбда должна делать это самостоятельно.
.. но я не могу представить, как это сделать без использования функции Mustache.to_html ()и когда я пытаюсь использовать его так ...
например,
data = {
"limitLength" : function() {
return function(text) {
return Mustache.to_html(text,data).substr(0,10) + '...';
}
},
"my_tag" : "A very long string that needs to be abbreviated to fit into the available space."
}
... он молча терпит неудачу (возможно, здесь виновато рекурсивное использование объекта данных)
Кто-нибудь знает о каком-либо другом способе достижения этого, не прибегая к функции javascript / jQuery, я хотел бы реализовать его, просто используя Mustache, если это возможно.