gpt4 book ai didi

grails - Grails通过远程操作渲染模板

转载 作者:行者123 更新时间:2023-12-02 14:40:00 25 4
gpt4 key购买 nike

我正在尝试通过远程操作部分更新 View

这是我的观点(home/index.gsp)

<button type="button" class="btn btn-success">Update</button>
<g:render template="datetime", model="[mybean: mybean]"/>

这是我的模板(home / _datetime.gsp)
<p>Time: ${mybean.getHours()} : ${mybean.getMinutes()} : ${mybean.getSeconds()}</p>

这是我的js
$("button.btn-success").click(function(event){
$.post("/home/updateTime")
})

这是我的 Controller
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
}
}
}

如果我浏览至 /home/index,则模板将正确呈现,但是当我单击按钮时,模板不会更新。为什么?

最佳答案

将模板包装在div中,例如

<div id="dtsDiv">
<g:render template="datetime" model="[mybean: mybean]"/>
</div>

然后使用以下javascript:
<script type="text/javascript">
$( document ).ready( function() {

$("button.btn-success").click(function(event){
$.ajax({
url: "${g.createLink( controller:'test', action:'updateTime')}",
type: 'get'
}).success( function ( data ) { $( '#dtsDiv' ).html( data ); });
})
});
</script>

关于grails - Grails通过远程操作渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42433420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com