2
我是grails的新手,無法找到解決方案。如何在grails中將部分模板加載到div中
每當創建客戶端被點擊時我想用部分模板_client.gsp的內容填充主要內容div。
我有以下的GSP頁面admin.gsp
<!DOCTYPE html>
<html>
<head>
<title>Admin Create</title>
<meta name="layout" content="main"/>
</head>
<body>
<aside class="sidebar span3">
<ul class="nav nav-list">
<li class="nav-header">Admin Console</li>
<li class="create-client"><a href="#">Create Client</a></li>
<li><a href="#">Library</a></li>
</ul>
</aside>
<div class="main-content span7">
</div>
<g:javascript src="admin.js"/>
</body>
</html>
我有一個名爲_client.gsp
<g:hasErrors bean="${client}">
<div class="alert alert-error alert-block client ">
<g:renderErrors bean="${client}" as="list" />
</div>
</g:hasErrors>
<g:form controller="admin" action="createClient">
<div class="row">
<legend>Create Client</legend>
<div class="span4">
<label>Client Name:</label>
<g:textField name="client.name" />
</div>
<div class="span4">
<label>Client Type:</label>
<g:textField name="clientType.type"/>
</div>
<div class="span4">
<label>External Id:</label>
<g:field type="number" required="" min="0" value="1" name="client.externalId"/>
</div>
</div>
</div>
</g:form>
我admin.js局部模板看起來像這樣
$(function(){
$('.create-client').on('click', function(e){
e.preventDefault();
$('.create-client').addClass('active');
$('main-content').load('_client.gsp');
});
});
我比前端更習慣於後端開發,因此對我來說是裸露的。任何幫助將不勝感激
謝謝,這正是我所需要的。儘管如此,我還是陷入了另一個問題。如果出現錯誤,我將如何處理重定向回部分加載的視圖? –
看到這個答案:http://stackoverflow.com/questions/12377142/grails-page-wont-redirect-after-completed-ajax-call/12377467#12377467 – ataylor
我想念的話。如果我在部分提交表單並且無效(在控制器中保存失敗),我該如何重新渲染帶有部分加載和錯誤的頁面。我認爲這將是更多的JavaScript工作。我無法在grails中找到任何允許我這樣做的事情 –