3

ドキュメントhttp://www.playframework.org/documentation/1.1/tags#agetaを読みましたが、わかりません。

誰かがより良い、より理解しやすい例を提供できますか?

4

1 に答える 1

3

これは基本的に、大量のHTMLを繰り返しコピーして貼り付けてから、その中の1ダースの小さな詳細を変更することを回避する方法です。

彼らがドキュメントで示している最初の例(あなたが読んだことは知っていますが、参照しやすいようにここで引用します)は次のとおりです。

<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>

ページ上のそのマークアップから始めて、フォームに2番目のフィールドを追加することを想像する場合は、そのブロック全体をコピーして貼り付けてから、、、、、、、および(それぞれが同じ基本フィールドへの個別の参照)を変更する必要があります&{'user.name'}。)新しいフィールドに適用する新しいマークアップを取得するだけです。user_nameuser.name${user?.name}user.nameuser.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、正確に1か所に表示されることです。このマークアップをコピーして貼り付けて別のフィールドを追加する場合は、#{field ...}タグ内の1つだけを置き換える必要があります。

その結果、ラベル、名前、ID、現在の値、エラーメッセージ、クラスなどを手動で頻繁に置き換えることなく、フォームの多くのフィールドの標準マークアップを簡単に開発できます。

于 2010-11-12T04:12:55.093 に答える