84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
let str = "<img :src=('face[k].src)>" this.commentList[i].Content = this.commentList[i].Content.replace(sArr[j], str)
需求是将str里面的字符串转成成html输出,这个img是表情来的,检测返回content中是否包含表情,然后替换,如果我这样输出的话只是字符串,请问如何转化为html呢?用eval()方法好像不支持
如下,应该在获取到数据之后修正 Content 为 html, 并使用 v-html 指令绑定:
<template> <ul v-for="item in commentList"> <li> <p v-html='item.Content'></p> </li> </ul> </template> <script> export { data() { return { commentList: [] } }, created() { this.$http.get('api/get-commentlist?article_id=1').then((res) => { res = res.body res.list.forEach((item, i) => { // sdfsafs[face-1]sad[face-2] // 将被替换为 // sdfsafs<img src="face-1.jpg">sad<img src="face-2.jpg"> // ,请自行根据需要修改 item.Content = item.Content.replace(/\[face\-(\d+)\]/g, '<img src="face-.jpg">') }) this.commentList = res.list }) } } </script>
--- 补充 ---
其中 .replace() 方法的第二个参数也支持使用函数返回,即能实现更复杂的替换,如:
item.Content = item.Content.replace(/\[(.+)\]/g, function(word, ){ return '<img src="/static/img/'+ this.face[].src +'" />' })
v-html?
建议使用v-if更好点
v-if
原生的用innerHTML,jq用html();
没有人遇到同样的问题吗~
如下,应该在获取到数据之后修正 Content 为 html, 并使用 v-html 指令绑定:
--- 补充 ---
其中 .replace() 方法的第二个参数也支持使用函数返回,即能实现更复杂的替换,如:
v-html?
建议使用
v-if
更好点原生的用innerHTML,jq用html();
没有人遇到同样的问题吗~