【问题标题】:grails, calling edit in view:A from view B using ajaxgrails,在视图中调用编辑:A 从视图 B 使用 ajax
【发布时间】: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”,并尝试从那里渲染视图,但后来调用了编辑操作并由于实例为空而崩溃。

标签: ajax redirect grails


【解决方案1】:

在设置window.location 时尝试添加引号:

window.location = "${createLink(controller:'prodBuffer',action:'edit_2')}"

如果没有它们,我的 javascript 浏览器插件会报告与正则表达式标志相关的错误。

【讨论】:

  • 这行得通。但这个问题可能是我问过的最愚蠢的问题。我已将我的项目转换为使用数据表(您的建议),这非常成功,但也产生了新问题。它们可能太多了,我无法一次处理。但就目前而言,我已经解决了有关此转换的所有问题。我认为这是一个愚蠢的问题的原因是我需要做的就是在 gsp 中输入这一行: 。很抱歉这个问题打扰了大家。
猜你喜欢
  • 2013-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 2022-01-08
  • 2020-08-27
  • 1970-01-01
相关资源
最近更新 更多