【问题标题】:Grails 2.4.4 Dynamic One-to-Many FormsGrails 2.4.4 动态一对多表单
【发布时间】:2015-03-11 14:37:10
【问题描述】:

我遇到了一个已知的老话题,奇怪的是,它的文档记录很糟糕(如果它甚至有文档记录的话)。我一直在尝试为 Grails 2.4.4 中具有一对多关系的表单创建一个动态表,为此我必须以 2.1 的教程为基础

我正在使用writetable jQuery plugin 来帮助我为表单开发一个漂亮的响应式 HTML,它就像一个魅力。当我删除一行时,它完全按预期工作并生成此 HTML 摘录:

示例 1尝试删除第 1 行(从零开始)(按第 1 行上的删除按钮)

<input type='hidden' name='faixas[1].deleted' value='true'/>

给定类:

package mobvida

class Questionario {
    String titulo
    int score = 0
    List faixas
    List questoes

    static belongsTo = [usuario:Usuario]
    static hasMany = [ questoes : Questao,
                       faixas : Faixa ]

    static constraints = {
    }

    static mapping = {
        faixas cascade: "all-delete-orphan"
    }
}

class Faixa {
    int limiteInf
    int limiteSup
    String nome

    boolean deleted

    static transients = [ 'deleted' ]
    static belongsTo = [questionario: Questionario]
    static constraints = {
    }

    def String toString() {
        return "${nome} (${limiteInf} - ${limiteSup})"
    }
}

QuestionarioController.groovy 文件中,我在控制器类下有以下内容:

@Transactional
def update(Questionario questionarioInstance) {
    if (questionarioInstance == null) {
        notFound()
        return
    }

    questionarioInstance.faixas.removeAll{(it.deleted || (it == null))}
    // questionarioInstance.questoes.removeAll{(it.deleted || (it == null))}

    log.info "${questionarioInstance}"

    for (it in questionarioInstance.faixas) {
        log.info "${it}(${it.id}) state: ${it.deleted}"
    }
    //...

即使在提交之前将html 添加到页面中,我也不会删除任何内容。通过update() 方法的日志说明,我可以看到我试图删除的行将属性deleted 保持为假。问题是......我在这里缺少什么来删除它?

【问题讨论】:

    标签: grails grails-orm grails-2.4


    【解决方案1】:
    static constraints = {        
            deleted bindable: true
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多