【发布时间】:2017-10-09 10:18:36
【问题描述】:
在控制器 B 的视图 (B) 表中单击字段时,我使用 ajax 显示控制器 (A) 的编辑视图 (A)。
就这么简单,但我无法让它发挥作用。使用以下脚本,什么都不会发生。
<script type="text/javascript">
$(document).ready(function() {
$( document ).on('click', '.prodID', function ( event ){
$.ajax({
url: '${g.createLink( controller:'prodBuffer', action:'edit' )}',
data: {id:this.id},
type: 'post'
}).success( function ( data ) {
window.location = ${createLink(controller:'prodBuffer',action:'edit_2')};
});
});
});
</script>
这是控制器 prodBuffer 中的编辑操作:
def edit_2() {
println("edit_2 - parms: "+params)
def prodBuffer = ProdBuffer.get(params.id)
def suppliers = Supplier.list()
def plannedVolumes = prodBuffer.plannedVolumes
println(">>> PlannedVolumes: "+plannedVolumes)
render (view: "edit_2", model:[prodBuffer: prodBuffer, plannedVolumes: plannedVolumes, sawMills:suppliers])
}
def edit(ProdBuffer prodBuffer) {
println("ProdBuffer - Edit - params: "+ params)
def suppliers = Supplier.list()
def plannedVolumes = prodBuffer.plannedVolumes
println("%%% PlannedVolumes: "+plannedVolumes)
respond prodBuffer, model:[plannedVolumes: plannedVolumes, sawMills:suppliers]
}
【问题讨论】:
-
“编辑”是您的操作还是 gsp?
-
分别使用 ajax 和 gsp 进行操作
-
编辑是动作,也是视图。有错吗?
-
是的,把它们分开,给不同的名字,如果你让 ajax 行动号召接受来自参数的数据并呈现响应。
-
好的,我将新操作命名为“edit_2”,并尝试从那里渲染视图,但后来调用了编辑操作并由于实例为空而崩溃。