Может ли хелпер {@size} использоваться внутри хелпера {@math} в пыли?
Вот фрагмент кода:
{@math key="{@size key=result/}" method="subtract" operand="3"/}
Над кодом выдается " SyntaxError: Ожидаемый конечный тег для eq, но он не найден ".
Есть ли другой способ добиться вышеупомянутой операции в dustjs?
1 ответ
Пыль не позволяет использовать помощника в качестве значения переданного параметра.
В общем, как только вы начинаете вкладывать помощников, вы должны спросить, не вкладываете ли вы слишком много логики в свои шаблоны, а не в контекст - это то, что Dust пытается реализовать с помощью относительно жестких ограничений.
Вы можете использовать контекстный помощник, чтобы извлечь эту логику из вашего шаблона, например так:
{#overflow key=results}...and {.} more!{/overflow}
Обратите внимание, как логика была удалена из шаблона. Теперь вы не жестко программируете встроенные бизнес-правила.
Добавить overflow
помощник в вашем контексте:
{
"results": [ ... ],
"overflow": function(chunk, context, bodies, params) {
var results = context.resolve(params.key);
return results.length - 3;
}
}