Grails Ajax渲染列表操作

时间:2012-12-30 21:30:46

标签: ajax jquery grails grails-2.0

尝试使用ajax(This is a snippet

渲染所有联系人

因此,点击后,它会在更新操作的div列出联系人。我已经测试了一个基本的日期函数(看到已注释掉的渲染动作控制器),以确保ajax部分可以工作,但确实如此,但是处理列表我已经打了一个墙并绕圈子< / p>

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

总的来说,它没有显示网页中的contactList的任何内容,对此的帮助将不胜感激

2 个答案:

答案 0 :(得分: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])        
}

答案 1 :(得分:3)

单击远程链接将向 showContacts 操作发送AJAX调用,获取HTML回答并使用返回的答案update divContactList 的内容。 showContacts 操作将呈现具有相同名称的模板,并将contactList作为模型的一部分传递给它。 如果您希望AJAX调用呈现联系人列表,您可以尝试以下options之一:

  1. 以内容为中心的Ajax - 让 showContacts 操作呈现显示联系人列表的模板
  2. 以数据为中心的Ajax - 让 showContacts 操作发送表示联系人列表的JSON / XML响应,并使用客户端JavaScript代码将此JSON / XML呈现为联系人列表