html - 将对象属性扩展为标记属性

标签 html grails

在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/

相关文章:

javascript - 如何使用 jquery 将表单输入字段转换为嵌套 json 结构

java - GORM无法使用addTo创建新实体

eclipse - 用于 Grails 开发的工具

database - 两个不同域中同名索引

html - 如何从psd文件计算行高? (前导+字体大小)

javascript - 如何找到动态创建的 li 的宽度

html - 浏览器的地址栏尺寸会影响 CSS 媒体查询吗?

javascript - 将 onClick 事件添加到动态生成的按钮?

date - Grails 域类日期

email - Grails邮件插件运行时配置