Одновременное использование вспомогательных аргументов и аргументов ключевого слова шаблона

У меня есть шаблон taskList, который получает список задач и хеш параметров в качестве аргументов, например:

{{> taskList tasks=taskHelper options=listOptions}}

В этом случае taskHelper возвращает все существующие задачи. Возможна ли передача аргументов в taskHelper в этом сценарии? Например, если я хочу показать в шаблоне только выполненные задачи, я хотел бы сделать что-то вроде этого :

{{> taskList tasks=taskHelper 'done' options=listOptions}}

Это не сработает, потому что компилятор шаблона обрабатывает 'done' не как аргумент для помощника, а как аргумент шаблона, не являющийся ключевым словом, что приводит к следующему сообщению об ошибке:

Can't have a non-keyword argument after a keyword argument

person klaussner    schedule 15.07.2015    source источник


Ответы (1)


метеор ‹ 1.1.1

Вы можете заставить его работать без каких-либо изменений в ваших помощниках, выполнив следующие действия:

{{#with taskHelper 'done'}}
  {{> taskList tasks=this options=listOptions}}
{{/with}}

метеор >= 1.1.1

Вложенные вспомогательные выражения должны решить эту проблему:

{{> taskList tasks=(taskHelper 'done') options=listOptions}}
person David Weldon    schedule 15.07.2015
comment
Спасибо! Вторую версию я попробовал первой, поэтому с нетерпением жду 1.1.1. :) - person klaussner; 16.07.2015
comment
Ух ты! В конце концов мы сможем избавиться от всех этих ужасных {{#с}}! Спасибо за Ваш ответ. - person ivanzolotov; 12.10.2015