Ionic 2 / angular 2:用HTML标签替换的字符串未正确呈现

时间:2017-01-18 09:27:57

标签: javascript angular typescript

我的JSON中有一系列内容,其中包含URLs作为文字。我想找到并用链接替换那些文本URLs。实际发生了什么?它确实将<a>标记和href=""中的正确网址替换为网址,但仍将此<a>标记呈现为文字而不是HTML

urlifyContent(){
   let urlRegex =/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
   for (let index = 0; index < this.message.Content.length; ++index){
       this.message.Content[index] = this.message.Content[index].replace(urlRegex,`"<a href='$1'target='_blank'>$1</a>"`);
   }
}

1 个答案:

答案 0 :(得分:3)

根据您的评论,您使用{{message.Content}}绑定使用urlifyContent()方法创建的html。这不起作用,因为{{}}会将值解析为字符串,而不是HTML。

要向页面添加HTML,您应该使用[innerHTML]指令:

<div [innerHTML]="message.Content"></div>

但是,值得一提的是,这不会解析HTML代码段中存在的任何角度组件或指令或绑定。它应该只是简单的html