0

使用 Grails Fields 插件,我有一些自定义模板,我想为其传递一个名为 class 的属性(用于 CSS 样式)。

例如,这就是我想要做的:

<f:field property="someProperty" class="someCustomCssClass" />

问题是我不能简单地在自定义模板中查找“类”属性,因为这是一个保留字。我宁愿不使用不同的属性名称,例如“cssClass”,因为这样我就无法在默认字段模板用法和自定义字段模板用法之间轻松切换。

到目前为止,我唯一能想到的就是解析“小部件”属性并从该字符串中获取类,但是有没有更好的方法来获取自定义字段模板中类属性的值?

4

2 回答 2

1

弄清楚了:

pageScope["class"]
于 2013-09-19T16:21:42.960 回答
1

我在 f:field 标记中使用了以下属性,并且正在开发 1.3 版的 Fields Plugin for Grails。

<f:field property="someProperty" input-class="someCustomCssClass anotherCustomCssClass" />

如果要添加另一个自定义属性,可以使用前缀名称“input-”并在前缀后添加所需的名称。所有具有前缀“input-”的属性都作为其属性传递给小部件。

如果您已经自定义了提交的渲染,这是当您在 views/_fields/_field.gsp 中创建默认模板时,您可以将自己的属性传递给在模板文件中添加它们的字段。以下是我用于Twitter Bootstrap的模板。在这种情况下,我将表单控件类传递给该字段。

<div class="form-group ${invalid ? 'has-error has-feedback' : required && value ? 'has-success has-feedback' : ''}">
    <label class="col-sm-3 control-label" for="${property}">${label}</label>
    <div class="col-sm-9">
        <f:input bean="${bean}" property="${property}" class="form-control"/>
        <g:if test="${invalid}">
            <span class="glyphicon glyphicon-remove form-control-feedback"></span>
            <span class="help-block">${errors.join('<br>')}</span>
        </g:if>
        <g:else test="${invalid}">
            <g:if test="${required && value}">
                <span class="glyphicon glyphicon-ok form-control-feedback"></span>
            </g:if>
        </g:else>
    </div>
</div>

如果要呈现默认字段,则必须删除该行:

<f:input bean="${bean}" property="${property}" class="form-control"/>

并将它们替换为

${raw(widget)}
于 2014-06-09T18:56:21.730 回答