Grails 2.4.4 动态一对多表单
Grails 2.4.4 Dynamic One-to-Many Forms
我遇到了一个已知的老话题,奇怪的是,它的记录很糟糕(如果有记录的话)。我一直在尝试为 Grails 2.4.4 中具有一对多关系的表单创建动态 table,为此我不得不以 2.1
的教程为基础
我正在使用 writetable jQuery plugin 来帮助我为表单开发一个美观的响应式 HTML,它非常有用。它完全按预期工作,并在我删除一行时生成此 HTML 摘录:
示例 1: 尝试删除第 1 行(从零开始)(按第 1 行上的删除按钮)
<input type='hidden' name='faixas[1].deleted' value='true'/>
鉴于 classes:
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
文件中,我在控制器 class 下有以下内容:
@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
保持为 false。问题是...我在这里删除了什么?
static constraints = {
deleted bindable: true
}
我遇到了一个已知的老话题,奇怪的是,它的记录很糟糕(如果有记录的话)。我一直在尝试为 Grails 2.4.4 中具有一对多关系的表单创建动态 table,为此我不得不以 2.1
的教程为基础我正在使用 writetable jQuery plugin 来帮助我为表单开发一个美观的响应式 HTML,它非常有用。它完全按预期工作,并在我删除一行时生成此 HTML 摘录:
示例 1: 尝试删除第 1 行(从零开始)(按第 1 行上的删除按钮)
<input type='hidden' name='faixas[1].deleted' value='true'/>
鉴于 classes:
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
文件中,我在控制器 class 下有以下内容:
@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
保持为 false。问题是...我在这里删除了什么?
static constraints = {
deleted bindable: true
}