【发布时间】:2012-01-30 01:09:42
【问题描述】:
情况是这样的:
我有一个文件,其中的信息每 30 秒更新一次。我创建了一个读取文件并提取所需数据的方法。在控制器中,假设RefreshController,我有一个方法ref,每30秒调用一次:
def ref = {
def Helper h = new Helper()
def d = JSON.parse(h.readFile())
render(view: 'index', model: [data: d])
}
通过圣杯remoteFunction:
<g:javascript>
setInterval(refreshMe, 30000);
function refreshMe(){
${remoteFunction(controller: 'refresh', action: 'ref', onSuccess: 'justDoIt(e);')}
}
function justDoIt(e){
alert('hello'); // to create the table on the fly, but missing the data from the controller
}</g:javascript>
问题是,如何从控制器获取或访问刷新的数据到javascript函数中?我可以访问${data},但在这种情况下,我只能获得控制器中data 变量的第一个初始化值。
我想使用刷新的数据动态创建表格,而不是在现有元素上。
我会很感激任何想法!
【问题讨论】:
-
@tomas 感谢您的指出,但这无济于事。通过调用 remoteFunction/remoteLink 一次我没有问题。我需要每 30 秒执行一次,我猜 remoteFunction 应该在 javascript 代码中。但是,出于某种原因,我在“数据”参数中没有得到任何信息。
标签: javascript grails