我是 Grails 的新手,对 AJAX 完全陌生。我对AJAX的概念掌握得不是很透彻,网上的资料也比较零散。
根据我的理解,在 grails 中,如果我想在我的 HTML 文档的一部分加载时在我的一个 Controller 中执行一个方法,我可以简单地使用一些类似的东西
<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
- 调用假设的 foo 的响应是如何返回的,我如何在 js 函数中访问它?
- 我可以从我假设的 foo 操作创建的类中返回一个对象吗?
最佳答案
在 foo 操作的返回上,您可以将简单的 html 作为文本或渲染一些可以在 View 中使用的对象。
这里有 Controller “渲染”的所有信息
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>'
View .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 警报,但您可以按照自己喜欢的方式进行,有很多方法可以做到。
希望对您有所帮助:)
关于html - Ajax 和 Grails 傻瓜书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11551182/