За „автоматично“ актуализиране на изгледите използвах приставката за Push на Grails Events, предлагам ви да я разгледате.http://grails.org/plugin/events-push
Наистина е лесно да изпратите събитията до браузъра и в клиента да ги слушате и да актуализирате обхвата на AngularJS с подходящата информация.
Пример
angularJS файл
window.grailsEvents = new grails.Events('http://myAppUrl.com', {enableXDR:true,readResponsesHeaders:false});
/**
* Module for listening to grails events
*/
angular.module('grailsEvents', []).factory('grailsEvents', function() {
return window.grailsEvents
});
window.myModule = angular.module('myModule',['grailsEvents'])
.run(function(){
grailsEvents.on('myEvent',function(data){
//Every time an event occurs, this will be executed
console.log(data);
});
});
MyEvents.groovy (в grails-app/conf)
events = {
'myEvent' browser:true
}
TestController.groovy (пример за контролер, който изпраща събитие)
class TestController{
def index(){
event(topic:'myEvent',data:MyDomain.list())
}
}