Может ли хелпер {@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;
  }
}
Другие вопросы по тегам