Ich benutze ein morris.js Tortendiagramm in meinem Grails-Projekt und jetzt versuche ich ein int nach einem Klick zu zählen und das Diagramm zu aktualisieren. Aber wenn ich "Redirect" verwende, wird die gesamte Seite aktualisiert. Gibt es eine empfohlene Möglichkeit, nur das Diagramm zu aktualisieren?Grails refresh chart
gsp:
<g:form controller="blankTest">
<g:actionSubmit value="Update" action="action"/>
</g:form>
<div id="myfirstchart" style="height: 250px;"></div>
<g:javascript id="test">
new Morris.Donut({
// ID of the element in which to draw the chart.
element: 'myfirstchart',
label: 'Test',
resize: true,
colors : ['#00ff00', '#ff0000', '#ffff00'],
data: [
{ label: 'Number1', value: ${number}},
{ label: 'Number2', value: ${number1}},
{ label: 'Number3', value: ${number2}}
],
});
</g:javascript>
Controller:
int number = 0
def index() {
[number: number, number1: 34, number2: 8]
}
def action() {
number++
redirect view: 'index'
}
Vielen Dank für Ihre Antwort verwenden wirklich es ist hilfreich. :) Ich denke, ich muss mehr mit Ajax arbeiten. Ich habe Ihren Code ausprobiert und habe einen Fehler in meiner Browser-Konsole: "Uncaught SyntaxError: Unerwartetes Token o in JSON an Position 1". Nachdem ich "var response = $ .parseJSON (data)" entfernt habe Es klappt. Ich denke, das Ergebnis des Controllers befindet sich bereits in JSON, sodass Sie es nicht erneut analysieren müssen. Aber ich bin mir nicht sicher. :) – ffghts
Gern geschehen. Die Antwort ist nicht ein JSON standardmäßig in einem Controller, Sie müssen es analysieren. Verwenden Sie den Chrome-Debugger, um zu ermitteln, welche Daten zur Erfolgsmethode gehören. – quindimildev