2017-02-04 270 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

谢谢。这似乎已经成功了。 –