后端返回一段字符串模板,前端如何解析?
可以实现但是安全性会有问题,建议最好是不要这样来处理,可以考虑处理一下返回的
<template>
<div id="app">
<div v-html="template"></div>
</div>
</template>
<script>
export default {
name: "demo",
data(){
return{
template :'',
list:{
name:'名称',
arr:[
{ text:'1111', status:true },
{ text:'2222', status:false},
{ text:'3333', status:true },
{ text:'4444', status:false}
],
},
temp2:"<div>${data.arr.map(item=>{return `<a href='${data.url}'>${item.name}</a>`})}</div>",
} }, mounted(){ this.template = this.test(this.list,this.temp)
},
methods:{
test(data,temp){
return new Function("data",`return \`${temp}\`;`)(data)
}
}
}
</script>
模板用 compile 来实现。 https://cn.vuejs.org/v2/api/#Vue-compile

浙公网安备 33010602011771号