でテンプレートをレンダリング(home/index.gsp
)Grailsは、私はこれが私の見解である部分的にリモートアクション</p> <p>でビューを更新しようとしているリモートアクション
<button type="button" class="btn btn-success">Update</button>
<g:render template="datetime", model="[mybean: mybean]"/>
これは私のテンプレート(ホーム/ _datetime.gspです)
<p>Time: ${mybean.getHours()} : ${mybean.getMinutes()} : ${mybean.getSeconds()}</p>
これは私のjs
$("button.btn-success").click(function(event){
$.post("/home/updateTime")
})
です3210
これは私が/home/index
を参照する場合は、テンプレートが正しくレンダリングされますが、私はボタンをクリックすると、テンプレートが更新されません私のコントローラ
class HomeController {
def index() {
def bean = new MyDateBean()
render view:"index", model:[mybean:bean]
}
def updateTime(){
log.debug("Updating time")
def bean = new MyDateBean()
render template:"datetime", model:[mybean:bean]
}
class MyDateBean{
private String hours
private String minutes
private String seconds
MyDateBean(){
def date = new Date()
this.hours = date.format("H")
this.minutes = date.format("m")
this.seconds = date.format("s")
}
String getHours(){
return this.hours
}
String getMinutes(){
return this.minutes
}
String getSeconds(){
return this.seconds
}
}
}
です。どうして?
を試してみてくださいより多くのJavaメソッド対グルーヴィーの容易さに関連した実際の問題とは無関係であったものをあなたは作品を書きましたが、レンダリングテンプレートのグレーズ機能は使用しません – fabiocolo
あなたのページ(index.gsp)がロードされると、すべてのタグと式が評価されます。ページをリロードせずに再レンダリングを開始することはできません。この場合、homeController/updateTimeは再レンダリングを行い、結果を返し、jQuery経由でDOMに設定されます。 –
上記のコードを '.success(function(data){ $( '#dtsDiv').html(data); })に変更すると、実際のデータが別のテンプレートに戻されます。これはjavascriptの基礎です – Vahid