【问题标题】:Grails Ajax rendering list actionGrails Ajax 渲染列表动作
【发布时间】:2012-12-15 05:09:44
【问题描述】:

尝试使用 ajax (This is a snippet) 呈现所有 联系人

所以在点击时,它会在更新操作中列出div 中的联系人。我已经测试了一个基本的日期函数(请参阅注释掉的渲染操作控制器)以确保 ajax 部分可以工作并且确实可以工作,但是处理我遇到的列表并转圈

普惠制

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

所以总的来说它没有显示网页中的联系人列表中的任何内容,我们将不胜感激

【问题讨论】:

  • UPDATE link 这种工作......但是,我做的不太对(请参考截图谢谢)

标签: ajax jquery grails grails-2.0


【解决方案1】:

_templateName.gsp:

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

普惠制:

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

【讨论】:

  • 感谢您的回复詹姆斯,很棒的小解决方案!我花了无数个小时在乱七八糟。我从你们俩身上学到了很多东西。
【解决方案2】:

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

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

【讨论】:

  • 首先感谢您的回复!这很有趣,在文档上有点困惑,在网站上的示例中,以数据为中心的选项更新为“foo”,但在 html 上没有任何内容......你能告诉我它的目的吗那个场景?
  • 这个例子展示了如何使用 JavaScript 方法更新内容。不知道为什么它包含“foo”更新,因为更新属性是可选的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 2010-11-30
  • 2012-01-11
  • 1970-01-01
  • 2017-06-05
相关资源
最近更新 更多