Как использовать # {поле 'переменная'} - PullRequest
3 голосов
/ 12 ноября 2010

Я прочитал документацию http://www.playframework.org/documentation/1.1/tags#ageta и не понял.

Может ли кто-нибудь привести лучший, более простой для понимания пример?

1 Ответ

3 голосов
/ 12 ноября 2010

Это, по сути, способ избежать многократного копирования и вставки связки HTML, а затем изменить в ней дюжину мелких деталей.

Исходный пример, который они приводят в документации (которую я знаю, что вы читали, но которую я приведу здесь для удобства):

<p>
  <label>&{'user.name'}</label>
  <input type="text" id="user_name" name="user.name" value="${user?.name}" class="${errors.forKey('user.name') ? 'has_error' : ''}">
  <span class="error">${errors.forKey('user.name')}</span>
</p>

Если вы представите, что начинаете с этой разметки на своей странице, а затем добавляете второе поле в форму, вам придется скопировать / вставить весь этот блок, а затем изменить &{'user.name'}, user_name, user.name, ${user?.name}, user.name и user.name (каждая отдельная ссылка на одно и то же базовое поле) только для того, чтобы новая разметка применялась к вашему новому полю.

И это просто больше печатания, чем некоторые из нас готовы взять на себя, просто чтобы добавить поле в чертову форму.

Замена #{field 'foo'} позволяет это:

#{field 'user.name'}
<p>
  <label>&{field.name}</label>
  <input type="text" id="${field.id}" name="${field.name}" value="${field.value}" class="${field.errorClass}">
  <span class="error">${field.error}</span>
</p>
#{/}

Преимущество здесь в том, что user.name появляется ровно в одном месте. Если бы вам пришлось скопировать / вставить эту разметку, чтобы добавить другое поле, вам пришлось бы сделать только одну замену: ту, что в теге #{field ...}.

Конечным результатом является то, что проще разработать стандартную разметку для многих полей в вашей форме, не выполняя много подверженных ошибкам ручных замен меток, имен, идентификаторов, текущих значений, сообщений об ошибках, классов и т. Д. так далее.

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