我看了視頻,真棒的東西。
我想不出任何方式來撰寫嚴格遵守Grails功能(你說得很好,沒有簡單的方法來從另一個動作調用一個動作),但你可以獲得一些好處在演示中結合Grails控制器模板渲染與Ajax調用(是的,這顯然只是一種解決方法)。
無論如何,我會成立了一個home.gsp定義主要佈局:
<html>
<head></head>
<body>
<div><h1>Title</h1></div>
<div id="section1"></div>
<div id="section2"></div>
</body>
然後添加一些Ajax:
$(document).ready(function(){
$.ajax({
type: "POST",
url: "${g.createLink(controller: 'home', action: 'section1')}",
dataType: "html",
success: function (data){
$('#section1').html(data);
}
});
$.ajax({
type: "POST",
url: "${g.createLink(controller: 'home', action: 'section2')}",
dataType: "html",
success: function (data){
$('#section2').html(data);
}
});
});
的HomeController是這樣的:
...
def section1() {
// Some code to fetch cool data...
render template: 'section1', model: data
}
def section2() {
// Some code to fetch cool data...
render template: 'section2', model: data
}
...
(我省略了模板_ section1.gsp和_ section2.gsp)
只要AJAX調用返回的數據中,模板在頁面呈現。此外,各部分是獨立的,這意味着您可以編輯第1部分的內容和佈局,而不必擔心第2部分。爲了試試這個,我做了一個小的(並且夠醜陋,沒有太多時間)grails應用程序(https://github.com/nicosalvato/tochi)。
這就是說,也許你的問題更具理論性(「Grails如何處理函數式編程」這樣的問題)比實際更有效。隨意稱我爲白癡,如果我完全錯過了這一點:)
你也許可以使用Forward來做類似的事情:http://grails.org/doc/latest/ref/Controllers/forward.html。我沒有在你提供的鏈接上觀看視頻。所以拿一點鹽來吧。 – Gregg
@gregg你應該看視頻:) –