在
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}`) }}
如何在{{expresion}}内部生成html?
答案 0 :(得分:1)
您需要使用v-html在模板中生成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代码。因此,我将标签内部视为字符串并删除了插值{
。