我在前端使用AngularJS,在聊天应用程序中使用Socket.io 当用户发送消息时,它将在UI中呈现,如下所示:
<p class="chat-msg">{{chat.msg}}</p>
但是如果用户发送任何链接,我该如何使其可点击?
一种方法是将消息传递给正则表达式并检查它是否包含链接并将它们放在<a>
标记中并在上面的标记中呈现该消息。
但是如果消息包含一些用户试图将其发送给另一个用户的html标签,那么它将被替换为html。
示例:
User1: Show me your code in example.com
User2: My code is as follows : <p>This is a simple <b>app</b</p> in example.com
User3: Looks Good
在上面的代码中,只有example.com应该是可点击的,<p>
标签应该显示为消息的一部分,而不是在UI中呈现。
知道如何做到这一点?
先谢谢
答案 0 :(得分:0)
您应该使用内置linky
过滤器(来自ngSanitize
模块)。
<p class="chat-msg" ng-bind-html="chat.msg | linky"></p>
但请注意,example.com
不是可链接资源,因为它必须以http / https / ftp / mailto开头。