playframework - установка параметра списка в пользовательском теге выбора - PullRequest
2 голосов
/ 02 сентября 2011

У меня есть несколько повторяющихся тегов select в моем html, поэтому я хочу создать пользовательский тег select в игре, который будет принимать в качестве параметра атрибут name select (что можно легко сделать) и объект списка, с помощью которого я создаю optionтеги динамически.

В основном я хочу сделать что-то вроде этого

////// custom tag stored in FormSelect.html///////
<select name="${_selectName}">
   #{list ${_options}, as: 't'}
      <option value="${t.Description}"> ${t.Description} </option> 
   #{/list}
</select>

///////calling the custom tag from another html file//////////
Type:
#{FormSelect selectName:'typ', options:types /}
Region:
#{FormSelect selectName:'reg', options:regions /}

типов и регионов переменные Вектор и пересылаются с контроллера.Я хочу, чтобы $ {_ options} в теге select (внутри # {list} ) принимали значения типов и регионов

Когда я выполняю приведенный выше код, я получаю это исключение

Template execution error 

Execution error occured in template /app/views/tags/FormSelect.html. Exception raised  was MissingMethodException : No signature of method: Template_1002.$() is applicable for argument types: (Template_1002$_run_closure1_closure2) values: [Template_1002$_run_closure1_closure2@127a1d8] Possible solutions: _(java.lang.String), is(java.lang.Object), run(), run(), any(), get(java.lang.String). 


In /app/views/tags/FormSelect.html (around line 2)

1: <select name="${_selectName}">
2:     #{list ${_options}, as: 't'}
3:        <option value="${t.Description}"> ${t.Description} </option> 
4:     #{/list}
5: </select>

thx заранее

1 Ответ

2 голосов
/ 02 сентября 2011

Вместо

#{list ${_options}, as: 't'}
      <option value="${t.Description}"> ${t.Description} </option> 
   #{/list}

используйте:

#{list items:_options, as: 't'}
      <option value="${t.Description}"> ${t.Description} </option> 
#{/list}

Это должно решить вашу текущую ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...