Я только начал работать с Google Closure, и я хотел бы перенести создание полей выбора в свой собственный шаблон и вызвать в этот шаблон что-то вроде:
{call templates.utils.select}
{param name: 'state'/}
{param value: $selected_state /}
{{param options: [
{name: 'Australian Capital Territory', value: 'ACT'},
{name: 'New South Wales', value: 'NSW'},
{name: 'Northern Territory', value: 'NT'},
{name: 'Queensland', value: 'QLD'},
{name: 'South Australia', value: 'SA'},
{name: 'Tasmania', value: 'TAS'},
{name: 'Victoria', value: 'VIC'},
{name: 'Western Australia', value: 'WA'}
]/}}
{/call}
и шаблон templates.utils.select
будет иметь логику для установки свойства selected
для правильной опции.К сожалению, я получаю сообщение «Не весь код используется в синтаксисе Soy V2» (найден тег {{param options: [{name: ... 'исключение].
* Полагаю, я мог бы использовать обходные пути при наличии опций).параметр передается в вызывающий шаблон, но тогда мне нужно убедиться, что все способы попадания в шаблон покрыты, что будет очень утомительно.
В данный момент я думаю, что мне нужно идтис
<select name="state">
<option value="ACT" {if $selected_state=='ACT'}selected="selected"{/if}>Australian Capital Territory'</option>
<option value="NSW" {if $selected_state='NSW'}selected="selected"{/if}>New South Wales</option>
...
</select>
, что также утомительно, но, по крайней мере, данные находятся в одном месте.
Есть ли лучший способ?