Ich habe ein statistisches Panel, das die zuletzt registrierten Benutzer anzeigt. Ich möchte einen AJAX-Aufruf implementieren, um das Panel hochzuladen, ohne die gesamte Seite neu laden zu müssen.Aktualisieren g: jedes Tag über AJAX-Aufruf in Grails
Ich habe den folgenden Code in meiner Ansicht:
<g:each in="${lastUsers}" var="user">
<div class="mt-comments">
<div class="mt-comment">
<div class="mt-comment-img">
<g:if test="${user?.avatar}">
<img src="${createLink(controller:'controllerUser',
action:'image', id: user?.id)}" />
</g:if>
<g:else>
<img class="img-circle"
src="${resource(dir: 'img/profile', file: 'user_profile.png')}"/>
</g:else>
</div>
<div class="mt-comment-body">
<div class="mt-comment-info">
<span class="mt-comment-author">${user?.username}</span>
<span class="mt-comment-date">
<g:formatDate date="${user?.dateCreated}"/>
</span>
</div>
<div class="mt-comment-text">${user?.email}</div>
<div class="mt-comment-details">
<g:if test="${user?.enabled}">
<span class="mt-comment-status label label-sm label-success circle">
</g:if>
<g:else>
<span class="mt-comment-status label label-sm label-info circle">
</g:else>
<g:formatBoolean boolean="${user?.enabled}"/>
</span>
<ul class="mt-comment-actions">
<li>
<g:link controller="user" action="edit" id="${user?.id}">Edit</g:link>
</li>
</ul>
</div>
</div>
</div>
</div>
</g:each>
Auch
, ich habe eine Schaltfläche, wenn es angeklickt wird ruft die AJAX-Funktion. Die Ajax-Funktion empfängt die Daten erfolgreich im JSON-Format. Von dort weiß ich nicht, mein g: jedes Tag hochzuladen.
Ich habe die remoteFunction von Grails versucht, das Upload-Attribut zu verwenden, aber ein Fehler angezeigt: Kein Javascript Anbieter konfiguriert ist, und ich habe die Lösung gesucht, aber nichts funktioniert mich.
Der Ajax-Aufruf:
$('.button').click(function() {
$.ajax({
url: URL,
success: function(data) {
console.log(data[index]);
console.log(val.username);
console.log(val.dateCreated);
console.log(val.email);
console.log(val.enabled);
console.log(val.avatar);
console.log(val.id);
},
error: function(){
},
});
Vielen Dank für mich zu helfen.
@JChap die richtige Antwort unten hat ... Sie müssen erkennen, dass alle g: Tags auf der Server-Seite in HTML/Javascript gerendert werden, etc. Und kann nur auf dem Server neu gerendert werden. Daher ist das Ergebnis des folgenden AJAX-Aufrufs HTML, um den Inhalt des domain userComments zu ersetzen. – billjamesdev