问题在于:
我有一个页面,例如www.app.com/home,我有一些窗口通过jquery以幻灯片方式添加到DOM。其中一个窗口具有查看联系人的Gmail帐户的功能。
这是以这种方式完成的:
我遇到的问题是,从主页本身,我可以访问具有$ {friendList}的控制器传递的模型,但是当我向弹出窗口添加一些代码时,$ {friendList}是未被发现。
答案 0 :(得分:0)
我过去曾使用grails渲染模板来解决这个问题。你可以有一个隐藏的div,jquery在弹出时会取消隐藏。 e.g
<div id="theSlideWindow" style="display:none">
<g:render template="gsptemplate" collection="${friendList}" var="myfriend" />
</div>
现在,当单击该按钮时,jquery将取消隐藏div并为其设置动画,但是您要为其设置动画。现在这不是很有效,这取决于friendList的大小,因为每次刷新都会加载它。
但是你仍然可以通过执行以下操作来使jquery加载工作:
将用户ID添加到隐藏的输入中。
<input type="hidden" value="${userid}"/>
使用jquery,所以将id作为参数发送:
$('button').click(function() {
var page = "gspurl/show?userid=" + $("#hidden").val();
$("div").load(page, function(response, status, xhr) {
//do something here
});
return false;
});
在你的gsp中使用userid加载friendList。
另一种选择是使用一个返回html或json而不是gsp的控制器。
显然,有几种不同的传递friendList的方法,但希望这会给你一些想法。