1

アクションの結果をモーダル (Twitter ブートストラップ) にレンダリングしようとしています。残念ながら、私はこれを機能させません。

各イテレータ内でリンクを生成する前に:

<g:link action="perform" id="${exerciseInstance.id}">
   <h2>${fieldValue(bean: exerciseInstance, field: "title")}: (${exerciseInstance.questions.size()} Questions)</h2>
 </g:link>

完全な新しいサイトをレンダリングする代わりに、クイズをモーダルで提示したいと考えています。したがって、単純な Twitter ブートストラップ モーダルの例を試しました。

<a data-toggle="modal" href="#myModal" class="btn btn-primary btn-large">${fieldValue(bean: exerciseInstance, field: "title")}</a>
<div id="myModal" class="modal hide fade" style="display: none; ">
  <div class="modal-header">
    <h3>Test</h3>
  </div>
  <div class="modal-body">
    --> This is where the content should go <--
  </div>
  <div class="modal-footer">
    <a href="#" class="btn" data-dismiss="modal">Close</a>
  </div>
</div>

これを達成するための最良の方法は何ですか?

4

1 に答える 1

2

SO で「最善の方法」を求めるのは危険なゲームです。ベストはないのだろう。アプローチが違うだけ。jQuery の$.load()関数を利用して使用するものを紹介します。

$("#myModal .modal-body").load(url);

それは本当に簡単です。パラメータを渡す必要がある場合や、コールバック関数を提供する必要がある場合は、明らかに load() 関数を調整してください。コントローラーのアクションは、モーダル ボディに必要な HTML を含むテンプレートをレンダリングするだけです。これは実際には Grails 固有のものでもありません。このアプローチは、どのサーバー側技術でも機能します。

于 2012-08-03T19:13:22.307 に答える