小编ecr*_*ane的帖子

Grails - 从数据绑定的hasMany关联列表中删除项目?

Grails提供了自动创建域对象并将其绑定到hasMany列表的功能,如grails用户指南中所述.

因此,例如,如果我的域对象"作者"具有许多"书籍"对象的列表,我可以使用以下标记(来自用户指南)创建和绑定它们:

<g:textField name="books[0].title" value="the Stand" /> 
<g:textField name="books[1].title" value="the Shining" /> 
<g:textField name="books[2].title" value="Red Madder" /> 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果指定的任何书籍尚不存在,Grails将创建它们并适当地设置它们的标题.如果指定的索引中已有书籍,则会更新其标题并保存.我的问题是:是否有一些简单的方法可以告诉Grails从数据绑定的"书籍"协会中删除其中一本书?

最明显的方法是省略与要删除的域实例对应的表单元素; 不幸的是,根据用户指南,这不起作用:

然后Grails将在定义的位置自动为您创建一个新实例.如果你"跳过"中间的一些元素......那么Grails会自动在两者之间创建实例.

我意识到特定的解决方案可以设计为命令对象的一部分,或者作为特定控制器的一部分 - 但是,在我的应用程序中,跨多个域对象以及许多不同类型的对象的关联,对此功能的需求会反复出现.因此,一般的解决方案是理想的.有谁知道Grails中是否包含这样的内容?

data-binding dns grails groovy associations

14
推荐指数
4
解决办法
2万
查看次数

标签 统计

associations ×1

data-binding ×1

dns ×1

grails ×1

groovy ×1