suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Javascript – Vue konvertiert String in HTML

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

为情所困为情所困2751 Tage vor819

Antworte allen(5)Ich werde antworten

  • phpcn_u1582

    phpcn_u15822017-05-19 10:33:46

    如下,应该在获取到数据之后修正 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-$1.jpg">')
                    })
                    this.commentList = res.list
                })
            }
        }
    </script>
    

    --- 补充 ---

    其中 .replace() 方法的第二个参数也支持使用函数返回,即能实现更复杂的替换,如:

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

    Antwort
    0
  • 曾经蜡笔没有小新

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

    v-html?

    Antwort
    0
  • 天蓬老师

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

    建议使用v-if更好点

    Antwort
    0
  • 迷茫

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

    原生的用innerHTML,jq用html();

    Antwort
    0
  • 大家讲道理

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

    没有人遇到同样的问题吗~

    Antwort
    0
  • StornierenAntwort