2017-02-04 271 views
0

我打電話給一個API,它返回一個Unicode字符串,如下所示。Vue將Unicode轉換爲HTML標記

當我在視圖中輸出它時,它不會自動將這些字符轉換爲HTML進行渲染,但我認爲Vue會將它視爲字符串。據我所知,Javascript應該呈現它。

我已經嘗試使用v-html指令無濟於事。

有沒有什麼辦法可以告訴Vue不要以字符串的形式輸出數據?

UPDATE 我使用這個功能,Unicode轉換爲文本:

unicodeToText: function(string) { 
    var b = "\\\\u" 
    return string.replace(new RegExp(b + "([0-9a-fA-F]{4})", "g"), function(c, d) { 
     return String.fromCharCode(parseInt(d, 16)) 
    }) 
} 

的下面兩個是完全一樣的字符串。

this.homeText = this.unicodeToText(response.data.text); 

然而,當我使用V-HTML指令,該API返回字符串:

的硬編碼字符串完全返回它像這樣:

+0

請參閱此[https://laracasts.com/discuss/channels/vue/escape-html-characters-with-vuejs?page=1](https://laracasts.com/discuss/ channels/vue/escape-html-characters-with-vuejs?page = 1) – Thennarasan

+0

@Thennarasan我不認爲這是相關的。我試圖轉換unicode。 –

+0

希望您想要將您獲得的數據作爲HTML加載到視圖中。如果你只是做一個console.log({你已發佈的數據}),它將打印HTML。因此,只要你想顯示,你可以使用選擇器並使用.html({傳遞數據})它將加載html。 – Thennarasan

回答

1

在檢查響應,我發現文本是一個unicode字符串。 要轉換回普通文本,請將其傳遞給JSON.parse(text)

decodeData(data){ 
    return JSON.parse('"' + data + '"'); 
} 

這裏是工作JS Fiddle

JSON.parse() Documentation

+0

謝謝。這似乎已經成功了。 –