シナリオ:トランジエントフィールドを含むオーダーショービュー、総費用。推移的フィールドは、デフォルトのフィールド生成ビューではレンダリングされないため、表示するフィールドを手動で指定する必要がありました。以下の罰金に動作します:Grailsのフィールドプラグイン - カスタムコレクションの表示メンバーをリンクとして表示
<f:with bean="customerOrder"> <f:display property='token' wrapper="displayText"/> <f:display property='lineItems' wrapper="displayCollection"/> <f:display property='total' wrapper="displayMoney"/> <f:display property='dateCreated' wrapper="displayDate"/> <f:display property='customer' wrapper="displayLink"/> </f:with>
displayCollection部分がそれはこのようになります/ビュー/ _fields/displayCollection内_displayWrapper.gspファイルによって処理されます。
<li class="fieldcontain" style="list-style-type: none;"> <span class="property-label">${label}</span> <span class="property-value" aria-labelledby="${property}-label"> <ul> <g:each in="${value}" var="item"> <li>${item?.toString()}</li> </g:each> </ul> </span> </li>
これは一般的なものでコレクション表示フィールド。それは、カート内の記事、ユーザーによる投稿などで機能します。唯一のことは、コレクションメンバーがテキストではなくリンクとして表示されることです。
$ {value}が1つのクラスメンバーであり、コレクションではない場合、以下の_displayWrapper.gspはうまく動作します。
<li class="fieldcontain" style="list-style-type: none;"> <span class="property-label">${label}</span> <span class="property-value" aria-labelledby="${property}-label"> <g:link action="show" controller="${property}" id="${value?.id}">${value?.toString()}</g:link> </span> </li>
質問は、私はコレクションのメンバーからコントローラ名を導き出すことができますどのように、コレクションは$ {値}によって得られていますか?
ビューテンプレートをインストールしましたが、そこには運がありません。同様に、私はフィールドのプラグインコードを見ましたが、そこにも運はありません。
アイデア?