3

ajaxを使用してすべての連絡先をレンダリングしようとしています(これはスニペットです

したがって、クリックするとdiv、更新アクションの連絡先が一覧表示されます。基本的な日付関数(コメントアウトされたレンダリングアクションコントローラーを参照)を使用して、ajaxパーツが機能することを確認しましたが、リストを処理すると、壁にぶつかって円を描くようになります。

GSP

<g:remoteLink controller="event" action="showContacts" update="divContactList">Show Contacts!</g:remoteLink>

<div id="divContactList">Show contacts Here...
    <g:each in="${contactList}" status = "i" var="contact">
       <p>${contact.forname}</p>            
       <p>${contact.email}</p>
    </g:each>
</div>

コントローラー

def showContacts = {
    def contactList = Contact.findAllByUser(lookupPerson())
//        render "The time is now ${new Date()}"
    render([contactList: contactList])        
}

したがって、全体として、WebページのcontactListから何も表示されていません。これについてのヘルプをいただければ幸いです。

4

2 に答える 2

5

_templateName.gsp:

<g:each in="${contactList}" status = "i" var="contact">
       <p>${contact.forname}</p>            
       <p>${contact.email}</p>
    </g:each>

GSP:

<g:remoteLink controller="event" action="showContacts" update="divContactList">Show Contacts!</g:remoteLink>

<div id="divContactList">Show contacts Here...
    <g:render template="layouts/templateName" model="[contactList: contactList]" />
</div>

コントローラ:

def showContacts = {
    def contactList = Contact.findAllByUser(lookupPerson())
//        render "The time is now ${new Date()}"
    render(template: 'layouts/templateName', model:[contactList: contactList])        
}
于 2012-12-31T00:58:16.380 に答える
3

リモートリンクをクリックすると、showContactsアクションへのAJAX呼び出しが送信され、HTMLの回答が取得され、返された回答でdivContactListのコンテンツが更新されます。showContactsアクションは、同じ名前のテンプレートをレンダリングし、モデルの一部としてcontactListを渡しますAJAX呼び出しで連絡先のリストをレンダリングしたい場合は、次のいずれかのオプションを試すことができます。

  1. コンテンツ中心のAjax- showContactsアクションで、連絡先のリストを表示するテンプレートをレンダリングします
  2. データ中心のAjax- showContactsアクションで連絡先のリストを表すJSON/XML応答を送信し、クライアント側のJavaScriptコードでこのJSON/XMLを連絡先リストとしてレンダリングします
于 2012-12-30T22:37:01.833 に答える