2012-12-30 48 views
3

試圖呈現所有聯繫人使用AJAX(This is a snippet的Grails的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,在此幫助,將不勝感激

+0

**更新** [鏈接](http://d.pr/i/mEXv) 這種作品...但是,我不是很對勁(請參考截圖謝謝) – RST

回答

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])   
} 
+0

感謝您對詹姆斯的迴應,偉大的小解決方案!我花了無數個小時搞亂了。我從你們倆身上學到了很多東西。 – RST

3

點擊遠程鏈接將發送一個AJAX調用showContacts行動,得到一個HTML答案,updatedivContactList與返回答案的內容。 showContacts動作將呈現具有相同名稱的模板,並將它作爲模型的一部分傳遞給contactList。 如果您想AJAX調用來呈現的聯繫人列表,你可以嘗試以下options之一:

  1. 內容爲中心的Ajax - 有showContacts動作中渲染它顯示接觸
  2. 列表中選擇一個模板
  3. 數據爲中心的Ajax - 有showContacts行動派代表聯繫人列表中的JSON/XML響應,並有一個客戶端的JavaScript代碼,使這個JSON/XML作爲聯繫人列表
+0

首先感謝您的回覆! 有趣的是,有一件事在文檔上有點混淆,在網站上有一個例子,它的數據中心選項更新爲「富」,但沒有任何HTML明智的與此...可以告訴我,請它是在這種情況下的目的? – RST

+0

本示例演示如何使用JavaScript方法更新內容。不知道爲什麼它包含「foo」更新,因爲更新屬性是可選的 –