【问题标题】:Locales/literals containing html包含 html 的语言环境/文字
【发布时间】:2019-08-04 03:39:04
【问题描述】:

locale/lang.json我有

{
  "title": "Title",
  "image": "service-corporate_thumb-v2.jpg",
  "alt": "alt",
  "imageFooter": "Some caption %",
  "imageFooterCTA": "author",
  "imageFooterURL": "https://example.com/author",
},

我正在尝试像这样生成作者:

<img :src="require(`~/assets/img/services/${service.image}`)" :alt="service.alt" class="mb-8">
<p>{{ service.imageFooter.replace('%', `<a href="${service.imageFooterURL}" target="_blank" class="primary-text">${service.imageFooterCTA}</a>`) }}</p>

但这会在生成的 HTML 中打印出来:

{{ service.imageFooter.replace('%', `${service.imageFooterCTA}`) }}

如何在 {{ 表达式 }} 中生成 html?

【问题讨论】:

    标签: html vue.js translation nuxt.js


    【解决方案1】:

    模板中生成html需要使用v-html。

    更多信息here

    你的例子试试这个

    <p class="mb-8">
     <a v-html="service.imageFooter.replace('%', '<a href="$' + service.imageFooterURL + '" target="_blank" class="primary-text">$' + service.imageFooterCTA + '</a>')">
    </p>
    

    注意事项:

    • 具有v-html 指令的标签将被替换,因此您可以使用任何东西,而不仅仅是a
    • v-html 的值必须是在当前上下文中执行的有效 JS 代码。这就是我将里面的标签视为字符串并删除插值{的原因。

    【讨论】:

    • 谢谢!那么我的例子怎么样?文档很短,只有一个非常简单的例子
    • 谢谢,但请注意,您正在更改连接 $ 的字符串,我就是这样做的:jsfiddle.net/vt21f850(小提琴以防止代码格式化)
    猜你喜欢
    • 2020-04-18
    • 2012-04-14
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2021-07-04
    • 2013-11-20
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多