0

有人可以为我指出 Grails 中正确功能的正确方向,以在我的视图中实现动态更改的属性吗?例如,当域类的实例处于特定工作流步骤中时,我希望某些字段提示、按钮标签和数据修改能力是特定于该步骤的。我可能会将这些属性存储在另一个域类中,但我不确定在执行数据实例上的编辑方法时如何应用它们。那是自定义标签,还是我只是用变量标签替换视图中的所有这些属性并从控制器传递值?让我开始的搜索词很好。谢谢。

4

2 回答 2

1

在控制器操作中,您可以返回一个模型(地图)。可以在视图中读取来自该模型的数据:

class MyController {
  def test() { 
    return [myData: 'hello', myOtherData: 42]
  }
}

在视图中,您可以通过以下方式访问模型:

...
<h1>${ myData }</h1>
<g:if test="${ myOtherData == 42}">
   <p>${ myOtherData }</p>
</g:if>
...

如果你想从控制器返回另一个带有模型的视图,你可以使用 render 方法:

render view: 'myview', model: [myData: 42]

有关更多详细信息,请参阅 grails 文档中的模型和视图部分。

于 2013-08-29T09:12:27.563 回答
0

感谢您的回复@micha。具体来说,我想知道动态更改页面(视图)的视觉方面的最佳实践是什么。我想我通过查看来自动态脚手架域的视图来回答我的问题。比如字段提示都是这样的:

<label for="last">
   <g:message code="employee.last.label" default="Last" />
</label>

因此,您可以计算控制器/服务中需要包含的所有提示,或者从数据库中查询它们,并将它们与进入字段的数据一起传递。我只是在检查 Grails 是否预见到了这种需求,并通过架构的某些特定方面使其变得更容易。

于 2013-08-29T15:32:31.607 回答