sah ich das Video, fantastisches material.
ich nicht von irgendeiner Weise zu Antworten komponieren denken kann strikt an Grails Funktionen kleben (Sie sagte, es gut, gibt es keine einfache Möglichkeit, eine Aktion von einer anderen Aktion zu nennen), aber Sie können einige der Vorteile erhalten gezeigt in der Präsentation kombiniert Grails Controller Vorlage mit Ajax-Aufrufen Rendering (ja, ist dies eindeutig nur eine Behelfslösung).
Auf jeden Fall hatte ich die Einrichtung eines home.gsp das Haupt Layout definieren:
<html>
<head></head>
<body>
<div><h1>Title</h1></div>
<div id="section1"></div>
<div id="section2"></div>
</body>
Dann fügen Sie einige 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 würde wie folgt aussehen:
...
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
}
...
(Ich lasse die Vorlagen _ section1.gsp und _ section2.gsp.)
Sobald die Ajax-Aufrufe, die Daten zurückgibt, werden die Vorlagen in der Seite dargestellt. Außerdem sind die Abschnitte unabhängig voneinander, was bedeutet, dass Sie den Inhalt und das Layout von Abschnitt 1 bearbeiten können, ohne sich um Abschnitt 2 kümmern zu müssen.
Nur um das auszuprobieren, machte ich eine kleine (und hässliche genug, hatte nicht viel Zeit) Grails-Anwendung (https://github.com/nicosalvato/tochi).
Dies sagte, vielleicht war Ihre Frage eher theoretische (eine Frage, wie Grails mit funktionalen Programmierung befasst) als praktisch. Fühlen Sie sich frei, mich einen Idioten zu nennen, wenn ich total den Punkt verpasste :)
Sie könnten wahrscheinlich einen Vorwärts verwenden, um etwas ähnliches zu tun: http://grails.org/doc/latest/ref/Controllers/forward.html. Ich habe das Video nicht über den von Ihnen bereitgestellten Link angeschaut. Nimm das mit einem Körnchen Salz. – Gregg
@gregg sollten Sie das Video ansehen :) –