在grails taglib中,我使用标记构建器来创建看起来像这样的标记
a(href: '#', class: 'show-modal', properties) {
mkp.yield '+'
}
在这种情况下, properties 是一组格式化的对象属性:{data-internet=true, data-desc=Lorem ipsum}
我需要将属性扩展为html5数据属性。得到这样的东西。
<a href="#" class="show-modal" data-internet=true, data-desc=Lorem ipsum>
现在而不是这个我得到了这个结果
<a href="#" class="show-modal">{data-internet=true, data-desc=Lorem ipsum}+</a>
这是一个grails taglib示例:
def test = { attrs ->
MarkupBuilder markupBuilder = new MarkupBuilder(out)
Map properties = ['data-internet': true, 'data-desc': 'Lorem ipsum...']
markupBuilder.a(href: '', properties) {
mkp.yield 'More info'
}
}
当我从视图中渲染<g:test/>
时,我得到了这个:
<a href="">{data-internet=true, data-desc=Lorem ipsum...}More info</a>
我期待着这一点:
<a href="" data-internet='true', data-desc='Lorem ipsum...'>More info</a>
感谢您的时间和想法
答案 0 :(得分:2)
您可以使用spread-map运算符来展开地图并将每个条目作为参数传递:
markupBuilder.a(href: '', *:properties) {
mkp.yield '+'
}