我使用ajax。 在ajax中,我在一个控制器中调用一个动作来回显:
render template : 'eventInvited', model : [eventInvitees :userData.get('users'),eventUsersCount:userData.get('userCounts'),
event :event, tab : userData.get('tab'), isFilter : false,user:user,flag: params.flag]
我必须使用eventInvitees来更新一些span,所以在成功(ajax)中我使用:
$('.inviteeSize').html(data.eventInvitees);
它没有更新此范围
答案 0 :(得分:0)
我认为你想要的是
$('.inviteeSize').html(${eventInvitees});
或
$('.inviteeSize').html(${data.eventInvitees});
另请注意,根据eventInvitees的数据类型以及HTML中的内容,最好这样做:
$('.inviteeSize').html("${eventInvitees}");
答案 1 :(得分:0)
data
中的success
参数将为HTML。您无法以这种方式访问用于在控制器中呈现模板的模型。
您可能更好地执行两个ajax调用,一个用于呈现模板,另一个用于获取事件被邀请者和您需要的任何其他数据的JSON对象。
$.ajax({
url: "...",
dataType: "html"
}).done(function(html){
$('.inviteeSize').html(html);
});
$.ajax({
url: "...",
dataType: "json"
}).done(function(json){
console.log(json);
});
其他一些方法
在模板中的data attributes中存储事件被邀请者数据。然后,您可以使用$.data
方法访问该文件。注:您可以将JSON存储在数据属性中。
首先向被邀请者提取JSON,然后使用某些数据作为参数请求呈现的模板,这样您就不会进行两次相同的userData.get()调用。
< / LI>获取JSON数据,然后使用Javascript模板引擎从中呈现HTML。而不是使用Grails gsp模板。