let str = "<img :src=('face[k].src)>"
this.commentList[i].Content = this.commentList[i].Content.replace(sArr[j], str)
Die Anforderung besteht darin, die Zeichenfolge in str für die Ausgabe zu konvertieren. überprüfen Sie, ob der zurückgegebene Inhalt ein Emoticon enth?lt, und ersetzen Sie es dann. Wie konvertiere ich es in HTML? Es scheint, dass die Methode eval() nicht unterstützt wird
如下,應(yīng)該在獲取到數(shù)據(jù)之后修正 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">
// ,請(qǐng)自行根據(jù)需要修改
item.Content = item.Content.replace(/\[face\-(\d+)\]/g, '<img src="face-$1.jpg">')
})
this.commentList = res.list
})
}
}
</script>
--- 補(bǔ)充 ---
其中 .replace() 方法的第二個(gè)參數(shù)也支持使用函數(shù)返回,即能實(shí)現(xiàn)更復(fù)雜的替換,如:
item.Content = item.Content.replace(/\[(.+)\]/g, function(word, $1){
return '<img src="/static/img/'+ this.face[$1].src +'" />'
})