【发布时间】:2013-07-13 19:09:21
【问题描述】:
我一直在尝试为我的保存、删除等按钮添加图标。我有大约五个按钮使用<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>
在a之间标记:
<g:actionSubmit ...> </g:actionSubmit>
有人对此有什么建议吗?
【问题讨论】:
-
我建议创建一个您遇到的问题的帖子,保留此帖子,以便有相同问题的人可以使用它。请说明您的错误或意外行为的问题。只是说
I'm getting some nuisances that I'm having to hack a lot of things up to fix并不能帮助我们帮助你。
标签: grails twitter-bootstrap font-awesome glyphicons