Javascript Grails在弹出窗口后呈现gsp页面
我有一个使用twitter引导的弹出窗口,然后我有一个调用控制器操作的javascript。在该控制器操作上,我呈现一个字符串以显示在弹出窗口中。在这个动作中,我有另一个呈现,它呈现gsp页面本身,因为在textarea中添加了一个值。如何使第二次渲染工作 普惠制:Javascript Grails在弹出窗口后呈现gsp页面,javascript,grails,twitter-bootstrap,render,popupwindow,Javascript,Grails,Twitter Bootstrap,Render,Popupwindow,我有一个使用twitter引导的弹出窗口,然后我有一个调用控制器操作的javascript。在该控制器操作上,我呈现一个字符串以显示在弹出窗口中。在这个动作中,我有另一个呈现,它呈现gsp页面本身,因为在textarea中添加了一个值。如何使第二次渲染工作 普惠制: 函数callEgCreate(){ $.ajax({ 键入:“获取”, url:“${createLink(控制器:'MGExecutingGroup',操作:'addEG_Create')}”, 数据:{ “inputFiel
函数callEgCreate(){
$.ajax({
键入:“获取”,
url:“${createLink(控制器:'MGExecutingGroup',操作:'addEG_Create')}”,
数据:{
“inputField=“+$(“[name='inputField']”)val()
“listField=“+$(“[name='listField']”)val()
}
}).成功(功能(数据){
$('.modal body').html(数据);
$('myModal').modal('show');
});
}
×
成员
${params.Result}
控制器:
def addEG_Create={
def LdapName
def结果
def membersString=“”
def成员=“”
结果=proxy.getWLSGroupParticipants(params.inputField)
如果(结果!=null){
params.egId=params.id
LdapName=proxy.getWLSGroupsForUser(结果[0])
整数索引
如果(LdapName.size()>1){
索引=0
//查找正确Ldap名称的索引号
对于(int i=0;i
杰卡,你不能这样渲染两个想法
render(members)
render(view:'create')
我认为你能做到这一点的更好方式是:
function callEgCreate(){
$.ajax({
type: "GET",
url: "${createLink(controller: 'MGExecutingGroup', action: 'addEG_Create')}",
data: {
"inputField="+$("[name='inputField']").val()
"listField="+$("[name='listField']").val()
},
dataType: 'json',
success(function(data) {
window.open(data['openWin']);
$('.modal-body').html(data['members']);
$('#myModal').modal('show');
});
}
在控制器中,您可以将数据呈现为JSON:
def addEG_Create () {
...
...
render([members:members, openWin:'create'] as JSON)
}
在你的普惠制中,你应该这样做:
function callEgCreate(){
$.ajax({
type: "GET",
url: "${createLink(controller: 'MGExecutingGroup', action: 'addEG_Create')}",
data: {
"inputField="+$("[name='inputField']").val()
"listField="+$("[name='listField']").val()
},
dataType: 'json',
success(function(data) {
window.open(data['openWin']);
$('.modal-body').html(data['members']);
$('#myModal').modal('show');
});
}
我没有测试过这段代码,可能会有一些错误,但逻辑是这样的
已更新
function callEgCreate() {
$.ajax({
type: "GET",
url: "testeChamada",
data: {"inputField": $("[name='inputField']").val(), "listField" : $("[name='listField']").val()},
dataType: 'json',
success: function (data) {
window.open(data['openWin']);
$('.modal-body').html(data['members']);
console.log(data['members']);
}
});
}
Ps1:在您的控制器中,当您说renderrender([members:members,openWin:'create']as JSON)
时,您必须使用map[key:value]键接收页面中的数据。
Ps2:在您的
数据中:
您犯了一个错误。它应该是一个带有Key:Value的地图你能提供你的行动代码吗?这样我就可以可视化你所需要的场景了。@Abdullah添加了我的代码。@user1690588还没有尝试过任何东西。不知道使用什么方法。您希望渲染同时工作,还是希望在一种情况下可以工作一个渲染,而在另一种情况下可以工作另一个渲染。您能解释一下您到底需要什么,因为我认为两个渲染不可能同时进行,因为您有一个屏幕而不是多个。membersString窗台不显示在listField文本区域。它仍然不起作用。弹出窗口甚至没有出现。请help@Jeka将我的邮件添加到gmail.com上的g talk lmeurer。让我们试着解决这个问题,然后把答案贴在这里
function callEgCreate() {
$.ajax({
type: "GET",
url: "testeChamada",
data: {"inputField": $("[name='inputField']").val(), "listField" : $("[name='listField']").val()},
dataType: 'json',
success: function (data) {
window.open(data['openWin']);
$('.modal-body').html(data['members']);
console.log(data['members']);
}
});
}