【问题标题】:How to pass a css param to main.gsp layout如何将 css 参数传递给 main.gsp 布局
【发布时间】:2013-11-15 20:10:07
【问题描述】:

我的布局中有 main.gsp。其他几个布局都应用主布局,但每个布局都有不同的页面背景(边框、背景图像、宽度等)。

在我的 main.gsp 中,我将 css 样式定义为:

<div class="container <g:pageProperty name="page.containerCss"/>">

在我的嵌套 gsps 中,我将 css 传递给主容器:

<g:applyLayout name="main">
...
<body>
<content tag="containerCss">myCustomCssStyle</content>

或者其他嵌套布局可能会使用:

 <content tag="containerCss">aDifferentStyle</content>

有没有更好的方法来做到这一点? main.gsp 中唯一的变量是这个 css 属性,所以我不认为创建 5 个不同版本的 main.gsp 是一个 DRY 选项。

【问题讨论】:

  • 视情况而定。每个布局有多少页?有多少页面使用默认布局?
  • 大约有 20 个页面使用 main 作为父级。其中有 5 个独特的 css 类需要传递给 main。该站点的所有其余部分均源自 20,因此它们不是问题。

标签: grails


【解决方案1】:

您可以在嵌套的 gsp 中根据请求设置一个具有范围的变量

 <g:set var="containerCss" value="aDifferentStyle" scope="request" />

在你的 main.gsp 中你可以像这样使用它:

<div class="container ${containerCss}">

我没有测试它,但它应该可以工作,玩得开心!

编辑:如果它不起作用,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多