gpt4 book ai didi

html - Groovy MarkupBuilder - 不产生原始文本

转载 作者:太空宇宙 更新时间:2023-11-04 15:07:16 26 4
gpt4 key购买 nike

我有以下代码块用于编写一系列包含图标和文本的按钮元素:

def tagcloud = { attrs, body ->

def mb = new MarkupBuilder(out)

mb.ul('class': 'list-inline') {
def tag = it
attrs.tags.split(",").each {
li {
button('class': 'btn btn-default', 'type': 'submit') {
i('class': 'fa fa-tag', '')
mb.yield('test')
}
}
}
}
}

但是,我发现在使用 yield 函数时,标记构建器将 yield 调用输出为我的 html 中的标记,而不是原始文本:

<li>
<button class="btn btn-default" type="submit">
<i class="fa fa-tag"></i>
<yield>test</yield>
</button>
</li>

根据我的研究,这是推荐的方法:HTML using Groovy MarkupBuilder, how do I elegantly mix tags and text?

有谁知道为什么这个文本被包装成这样?

我正在使用 Grails 2.3.8。

最佳答案

就是这样:

def tagcloud = { attrs, body ->

def mb = new MarkupBuilder(out)

mb.ul('class': 'list-inline') {
def tag = it
attrs.tags.split(",").each {
li {
button('class': 'btn btn-default', 'type': 'submit') {
i('class': 'fa fa-tag', '')
mkp.yield('test')
}
}
}
}
}

mkp 是一个特殊的命名空间,用于脱离构建器的正常构建模式,并访问辅助标记方法,例如“yield”和“yieldUnescaped”。查看javadoc for getMkp()了解更多详情。

关于html - Groovy MarkupBuilder - 不产生原始文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25063531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com