Grails& Ajax无法通过控制器传递数据

时间:2015-11-02 10:13:42

标签: ajax grails controller

我使用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);

它没有更新此范围

2 个答案:

答案 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模板。