Maison  >  Questions et réponses  >  le corps du texte

javascript - vue convertit la chaîne en HTML

let str = "<img :src=('face[k].src)>"
this.commentList[i].Content = this.commentList[i].Content.replace(sArr[j], str)

L'exigence est de convertir la chaîne en str en HTML pour la sortie. Cette img provient d'une émoticône. Vérifiez si le contenu renvoyé contient une émoticône, puis remplacez-la. Si je l'affiche comme ceci, ce sera simplement une chaîne. Comment puis-je le convertir en HTML ? Il semble que la méthode eval() ne soit pas prise en charge

为情所困为情所困2699 Il y a quelques jours765

répondre à tous(5)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-19 10:33:46

    Comme suit, après avoir obtenu les données, vous devez modifier le contenu en HTML et le lier à l'aide de la commande 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>
    

    --- Supplément ---

    Le deuxième paramètre de la méthode .replace() prend également en charge l'utilisation de retours de fonction, qui peuvent réaliser des remplacements plus complexes, tels que :

    item.Content = item.Content.replace(/\[(.+)\]/g, function(word, ){
      return '<img src="/static/img/'+ this.face[].src +'" />'
    })

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:33:46

    v-html?

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-19 10:33:46

    Il est recommandé d'utiliser v-ifMieux

    répondre
    0
  • 迷茫

    迷茫2017-05-19 10:33:46

    Utilisez innerHTML pour le natif, html() pour jq ;

    répondre
    0
  • 大家讲道理

    大家讲道理2017-05-19 10:33:46

    Quelqu'un a-t-il rencontré le même problème~

    répondre
    0
  • Annulerrépondre