【问题标题】:Ajax and Grails for Dummies傻瓜式的 Ajax 和 Grails
【发布时间】:2012-07-18 01:37:16
【问题描述】:

我是一名 Grails 新手,对 AJAX 完全陌生。我对AJAX的概念没有完全掌握,网上的资料比较零散。

根据我的理解,在 grails 中,如果我想在我的 HTML 文档的一部分加载时在我的一个控制器中执行一个方法,我可以简单地使用类似于

<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
  1. 对假设的 foo 的调用的响应如何返回?如何在 js 函数中访问它?
  2. 我可以从我假设的 foo 操作创建的类中返回一个对象吗?

【问题讨论】:

    标签: html css ajax grails web-applications


    【解决方案1】:

    在 foo 操作返回时,您可以将简单的 html 作为文本或渲染一些可在视图中使用的对象。

    这里有关于控制器“渲染”的所有信息

    http://grails.org/doc/latest/ref/Controllers/render.html

    您可以使用该数据进行更新并在那里使用它。然后,您可以像往常一样使用 javascript 访问该“foo”div 中的 Html 和数据。

    例如:

    Controller.groovy

    // renders text to response
    render '<div id="bar" onclick="alert($('bar').val())>some text</div>'
    

    查看.gsp

    //Makes the call and updates foo
    <div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
    <div id="foo" name="foo"></div>
    

    输出

    <div onload="theAjaxJavascriptFunctionThatGrailsWillInject" ...>
    <div id="foo" name="foo">
        <div id="bar" onclick="alert($('bar').val())">some text</div>
    </div>
    

    如果你从 Controller.grooy 返回一些对象,那么你必须在 View.gsp 中像这样对待它

    //Makes the call and updates foo
    <div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
    <div id="foo" name="foo">
        ${myObject.theValueIWant}
    </div>
    

    我添加了一个 javascript 警报,但您可以按照自己喜欢的方式进行操作,有很多方法可以做到。

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2011-10-12
      • 2010-09-23
      • 1970-01-01
      相关资源
      最近更新 更多