0

我正在使用 Grails 2.2.1 和 Twitter Bootstrap 插件。

如果我理解正确,GSP 的目的是通过 grails 标签/标签库在服务器端呈现某些东西。

如何使用服务器端方法调用带有控制器myController的动作myAction以仅在模式内呈现?

如果没有这样做的服务器端方式,那么最好的选择是什么?

4

1 回答 1

1

如果您希望您的模式从服务器呈现数据而无需刷新当前页面,那么您将需要某种类型的“ajax”来检索数据并填充模式。

一个简单的例子(我假设你有 jquery 和 bootstrap css+js):

//button to launch your modal
<a href="#myModal" role="button" class="btn" data-toggle="modal">Launch demo modal</a>

//your modal
<div id="myModal" class="modal hide fade" ...
 ...
 <div id="modal-body">..
</div>

将数据加载到模式中的一种方法是将 ajax 调用绑定到模式“显示”事件。这是一个非常基本的示例,但是每当模态显示时,都会调用 myController/myAction/someid 将数据加载到模态主体 div

$(document).ready(function() {
  $('#myModal').on('show', function () {
    $.ajax({
      type: "GET",
      url: "${createLink(controller: 'myController', action: 'myAction', id: 'someid')}" 
    }).done(function(data) {
        $('#modal-body').html(data);
    });

  });//end on()
});//end ready()

Some things to consider:

  • you'll probably want to do some type of content negotiation to pass back json data vs raw html
  • a less localized method of passing url: to ajax call

Hopefully that'll get you started with some ideas

于 2013-06-26T22:50:40.503 回答