【发布时间】:2017-09-21 04:45:54
【问题描述】:
我目前正在使用 Ionic 2/Angular 2 制作应用程序,但遇到了一个我无法完全解决的障碍。
为了提供一些见解,我从 Web 服务中获取了一堆字符串,其中一些字符串可能类似于以下示例:
"这是一个带有链接的字符串:http://www.somelink.com"
我已经设置了一个正则表达式来查找字符串中的链接(如果有的话)并将它们转换为标签,如下所示:
"This is a string with a link:
<a href="the link from above">the link from above</a>"
我想把这个带有标签的字符串放到下面的html中:
<ion-item-sliding *ngFor="let item of wishes">
<div ion-item text-wrap style="user-select: text">
{{item.wish}}
</div>
</ion-item-sliding>
item.wish 包含上面提到的“这是一个字符串.....”,我希望它实际创建链接以便它是可点击的,但由于某种原因它显示标签,而不是使其成为链接.我期待插值将 HTML 标记解析为工作链接,而不仅仅是打印整个标记。
更新
在我的 ts 文件中,我有这个:
urlify(text) {
var urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
return text.replace(urlRegex, function (url) {
return "<a href=\"" + url + "\">" + url + "</a>";
})
}
制作这个的基本方法:
"This is a string with a link: http://www.somelink.com"
进入这个:
"This is a string with a link:
<a href="http://www.somelink.com">http://www.somelink.com</a>"
该字符串然后通过插值传递到 HTML 页面,如上所示。
所以标签是在代码中创建的,因为它必须是动态创建列表项,所以我不能在 HTML 中设置标签。如果我在 HTML 中创建标签,例如:
<a [href]="{{item.wish}}">somelink</a>
它还将链接旁边的文本(“这是一个带有链接的字符串”)也变成一个链接,这不是本意,只有链接应该是可点击的。
【问题讨论】:
标签: javascript html angular typescript ionic2