我试图从我的控制器传递一个集合来查看,如下所示:
def index() {
childInstance = Child.get(params.id)
if(childInstance){
System.out.println("CHILD" + childInstance.firstname)
def messages = currentUserTimeline(childInstance)
[profileMessages: messages, childInstance: childInstance]
}
else{
def messages = currentUserTimeline(null)
[profileMessages: messages]
System.out.println("ALL " + messages)
}
}
if 有效,但 else 说明它将 profileMessages 作为空对象发送。如果我添加
render template: 'profileMessages', collection: messages, var: 'profileMessage'
其他这可行,但我想将所有内容传递给视图,而不是在控制器中呈现它。
在我正在使用的视图中:
<g:render template="profileMessages" collection="${profileMessages}" var="profileMessage"/>
任何想法为什么它在发送到视图时在 if 而不是在 else 中起作用?仅供参考,我已添加
[profileMessages: messages, childInstance: null]
到没有运气和 null 的 else 是允许的,并且确实在
currentUserTimeline(null)
因为
render template: 'profileMessages', collection: messages, var: 'profileMessage'
作品。