大家好,又见面了,我是你们的朋友全栈君。
vue项目中碰到需要在模板字符串中动态渲染数组中的每一项,发现v-for不能正常渲染,于是使用原生的js语法来完成 。
let tempul=`
<ul>
${this.mapInfoshowList.map(item=>{
let tempid = `${item.id}`
return `<li>
<i class="el-icon-star-on"></i>
${item.name}: ${ele[item.id]}
</li>`
}).join('')}
</ul>`
let content1 = `
<div class="mymapinfo">
${tempul}
<p><i class="el-icon-location"></i> 位置: `+ele.weizhi+`</p>
<div style="border-top:1px dashed #919191;padding-top:8px;
color:rgb(64, 158, 255);font-size:12px;width:98%">
<span onclick='guijihuifang()'>轨迹回放</span>
<span >车辆追踪</span>
<span >实时视频</span>
<span >历史视频</span>
<span onclick='cymingling()'>常用命令</span>
<span >查看街景</span>
</div>
</div>`
<script>
const list = [
{id:1,name:"aaaa"},
{id:2,name:"bbbb"},
{id:3,name:"cccc"},
{id:4,name:"dddd"}
]
let doc = document.getElementById("box");
// let htmlcontent = `
// <ul v-for="${(item,index) in list}" :key="${index}">
// <li id="${item.id}">${item.name}</li>
// </ul>
// `
//v-for不能正常渲染,报错如下
//template.html:26 Uncaught ReferenceError: item is not defined at template.html:26:23
let teplhtml = `<ul>
${list.map(item=>{
return `<li id="${item.id}">${item.name}</li>`
}).join('')
}
</ul>`
doc.innerHTML = teplhtml
</script>
效果:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171845.html原文链接:https://javaforall.cn