vue.js - VueJs在没有元素的for循环内显示html
问题描述
我循环通过我的页面组件。问题是循环省略了 <div class="wp-block-columns">
例如<div><div class="wp-block-columns"></div>
有没有一种方法可以让我循环并执行此操作<div v-if="item.substring(0,10) !== 'component-'" v-html="item"></div>
而无需在另一个周围输出 div?
怎样才能做到这一点?
页面组件:
<template v-for="item in json.content">
<component v-if="item.substring(0,10) === 'component-'" :is="item"></component>
<div v-if="item.substring(0,10) !== 'component-'" v-html="item"></div>
</template>
将转换为 json 的数据 php 数组:
array:13 [▼
1 => "<div class="wp-block-columns">"
2 => "<div class="wp-block-column col-md-6" style="flex-basis:33.38%">"
3 => "<p>111</p>"
4 => "</div>"
8 => "<div class="wp-block-column col-md-6" style="flex-basis:33.63%">"
9 => "<p>222</p>"
10 => "</div>"
14 => "<div class="wp-block-column col-md-6" style="flex-basis:33%">"
15 => "<p>333</p>"
16 => "</div>"
17 => "</div>"
20 => "component-adreswidget"
23 => "<p>test</p>"
]
解决方案
正如您在官方文档https://vuejs.org/v2/guide/syntax.html#Raw-HTML中看到的那样,如果不包装某些标签,就无法使用 v-html 。
你可以做的是以这样的方式重新排列你的数组,它给你整个块而不是单独的标签
array:13 [▼
1 => `<div class="wp-block-columns">
<div class="wp-block-column col-md-6" style="flex-basis:33.38%">
<p>111</p> </div>
</div>`
2 => "component-adreswidget"
3 => "<p>test</p>"
]
并将其包装在 span 或 div 中。
推荐阅读
- openssh - OPENSSH - 无法通过 ssh 连接本地窗口
- dependency-injection - 如何将模板注入 Symfony 4 服务
- ios - 如何在 MapRect 上的 WKInterfaceMap 中设置图像覆盖
- java - 下载文件时如何点击处理IE中弹出的对话框?
- c# - 如何在 IStringLocalizer 实现中使用 DbContext?
- hive - 在配置单元中解析异常
- javascript - 当我运行我为移动站点(Angular)编写的量角器脚本时,Chrome 和模拟器都会自动关闭
- android - 要使用 keytool,我应该将嵌入式 jdk 从 android studio 添加到 PATH 还是应该全局安装 jdk?
- python - 在库 libxml2 中找不到函数 xmlCheckVersion。是否安装了 libxml2?python 3.7.0 问题
- javascript - 日期转换为本地日期时间