2017-10-09 50 views
0

当在控制器B中的视图(B)中的字段中单击时,我使用ajax显示控制器(A)的编辑视图(A)。grails,在视图中调用编辑:A使用ajax从视图B

这只是简单的,但我不能让它工作。通过以下脚本,没有任何反应。

<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] 
} 
+0

'编辑'是你的动作还是gsp? –

+0

使动作使用阿贾克斯和gsp分开查看 –

+0

编辑是行动,但也是视图。那是错的吗? – larand

回答

1

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

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

没有他们,我的JavaScript的浏览器插件是报告与常规错误表达标志。

+0

这是工作。但这个问题可能是我曾问过的最愚蠢的问题。我已经将我的项目转换为使用数据表(您的建议),这是一个完美的命中,但也造成了新的问题。而且他们可能太多,我一次处理。但现在,我已经解决了有关此转换的所有问题。我认为这是一个愚蠢的问题的原因是,我需要做的就是在gsp中输入这一行:​​ $ {pb.id}。对于这个问题,我很抱歉打扰你们。 – larand