2011-03-17 18 views
5

Tworzę aplikację webową grails, i mam główny indeks gsp, i jest kilka wspólnych składników, które będą wspólne dla większości stron w witrynie, do której używam szablonów częściowych.Załaduj częściowy szablon Ajax - z Grails

Każdy szablon częściowy będzie dość odizolowany i zawiera bardzo różne informacje, dlatego każdy powinien otrzymywać informacje od różnych kontrolerów.

To, czego chcę, to ładowanie strony, dla każdego szablonu częściowego, aby nawiązać połączenie z kontrolerem, aby załadować wymaganą zawartość - Mam nadzieję, że jest tam jakiś znacznik, który mogę z łatwością umieścić w moich szablonach częściowych określających kontroler/akcję, która będzie automatycznie wywołaj kontrolery podczas ładowania.

Czy to możliwe?

---- EDIT -----

Ponadto, jeden z kontrolerów częściowego szablonów będzie odciągnięcie informacje z usługą internetową, która może zająć trochę czasu, więc byłoby dobrze, gdyby Mogłem również ładować te szablony asynchronicznie.

Dzięki!

Odpowiedz

4

Do tego służy znacznik <g:include>. Jest bardzo przydatny sam w sobie, ale jeszcze bardziej w połączeniu z springcache plugin i korzystaniem z buforowania fragmentów stron. Ponieważ funkcja włączania wywoła zwykłą akcję w kontrolerze, można ją również pobrać przez wywołanie ajax.

+0

Dzięki Stefan! to wygląda dokładnie tak, jak potrzebuję, jednak uwzględniłem w moich szablonach częściowych. GSP i metoda kontrolera nie wydają się być wywoływane - czy jest coś jeszcze muszę zrobić? – rhinds

+0

Co więcej, masz szansę na wskazanie mi przykładu ajaxowego przy użyciu tagu include? Dzięki jeszcze raz! – rhinds

+0

Zależy od twojego usecase: jeśli chcesz wywołać akcję, która ma być włączona przez jakąś inną akcję również przez wywołanie ajax, powinieneś użyć http://www.grails.org/doc/latest/ref/Tags/ remoteFunction.html. Jeśli wynik wywołania ajax powinien zawierać jakieś inne działanie, g: include powinno być użyte w gsp, wywołanym wywołaniem ajax. –