在grails taglib中,我正在使用标记生成器来创建看起来像这样的标记
a(href: '#', class: 'show-modal', properties) {
mkp.yield '+'
}
在这种情况下,属性是一组格式化的对象属性:
{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'
}
}
从 View 中渲染
<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>
谢谢您的时间和想法
最佳答案
您可以使用spread-map运算符解开 map 并传递每个条目,就好像它是一个参数一样:
markupBuilder.a(href: '', *:properties) {
mkp.yield '+'
}
关于html - 将对象属性扩展为标记属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46185459/