我一直在尝试将图标添加到我的保存、删除等按钮。我有大约五个按钮使用<g:actionSubmit>
标签来调用控制器中的动作来执行相应的功能。我的问题是 FontAwesome 和 bootstrap 的字形图标需要<i class="icon-***">
像这样使用标签:
<a href="http://google.com">
<i class="icon-ok"></i> Google
</a>
在 grails 中,初始标记之间的这种标记格式是不可能的(至少使用actionSubmit
)。value 属性是显示的字符串。有什么解决方法吗?请记住,我仍然需要将按钮操作映射回控制器,这就是为什么我在使用<button>
像引导程序推荐的直接标签时遇到问题的原因。
更新:
使用当前的 2 个答案时我遇到了很多问题。它们都用于添加图标,但我遇到了一些麻烦,我不得不修改很多东西来修复。我考虑了另一种解决方案,但在实施它时遇到了一些问题。我想使用 taglib 的基础作为下面的 actionSubmit 标记库来编写我自己的标记库:
def actionSubmit = {attrs ->
attrs.tagName = "actionSubmit"
if (!attrs.value) {
throwTagError("Tag [$attrs.tagName] is missing required attribute [value]")
}
// add action and value
def value = attrs.remove('value')
def action = attrs.action ? attrs.remove('action') : value
out << "<input type=\"submit\" name=\"_action_${action}\" value=\"${value}\" "
// process remaining attributes
outputAttributes(attrs)
// close tag
out << '/>'
}
我需要做的唯一改变是让它能够接受
<i class="icon-ok"></i>
之间的标记:
<g:actionSubmit ...> </g:actionSubmit>
有没有人有建议或对此实施?