2013-03-21 1 views
1

ситуация есть: у меня есть javascript bool variable с именем status. Если это правда, я хочу отобразить шаблон Grails. Если это ложь, я хочу отобразить другой шаблон Grails. Мой код:Render Grails template в зависимости от переменной JS

HTML/JS

<div id="content"> 
<g:javascript> 
    $(function(){ 
     if(status==true) { 
      $.ajax({ 
       url: '/tool/home/renderSplash', 
       type: 'POST', 
       failure: function(){alert("Failed loading content frame"}) 
      } 
     else{ 
      $.ajax({ 
       url: '/tool/home/renderContent', 
       type: 'POST', 
       failure: function(){alert("Failed loading content frame")} 
      }) 
     } 
    }) 
</g:javascript> 
</div> 

Grails:

class HomeController { 

    def index() {} 

    def renderSplash() { 
     render(template: "splash") 
    } 

    def renderContent() { 
     render(template: "content") 
    } 
} 

Я могу видеть, что POST содержит правильные данные шаблона, но его не привел к экрану.

Я делаю это правильно?

+0

Я не вижу никакого кода, который будет обрабатывать ответ и помещать содержимое в dom. Как вы обрабатываете ответ ajax? –

ответ

4

Добавить обработчик успеха на ваш вызов AJAX, который отображает результат. Вам понадобится элемент-заполнитель для его отображения. Пример:

$.ajax({ 
     url: '/tool/home/renderContent', 
     type: 'POST', 
     failure: function(){alert("Failed loading content frame")}, 
     success: function(response) { $('#response').html(response); } 
    }) 

... 
<div id='response'></div> 
+1

Многое, чтобы узнать, у меня все еще есть <(-_-)> – holgrich

 Смежные вопросы

  • Нет связанных вопросов^_^