假设我有一个过滤器(在每个操作之前调用它),我如何将从数据库中获取的对象传递到每个 View ?我不想重构 我所有的方法。
可视化:
我有一个设置对象的过滤器,例如:
def god = God.find(1)
我有 100 个 Controller ,每个 Controller 有 100 个方法,即 100 * 100 个 View 。 通常在操作中你会写这样的内容:
def index = {
def something = Something.find(1)
[something: something]
}
问题是我如何也传递God
对象,而不必修改返回数组
[something: something, god: god]
最佳答案
您需要为您的过滤器添加一个 after
拦截器类型。 after
将 model
作为闭包的参数,您可以将 god 添加到该模型中。
myFilter(controller:'*', action:'*') {
after = { model ->
def god = God.find(1)
model.god = god
}
}
Here's相关文档部分。
关于GRAILS:将对象传递给每个 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9490553/