我尝试在字符串值中检测到Url或纯文本。如果它是Url,则该函数使用bypassSecurityTrustHtml
返回HTML超链接。显示超链接,但是当我点击它时,没有任何反应。但是,Chrome会将其识别为链接,当我右键单击时,我可以选择«在新窗口中打开»并且它可以正常工作。
角度代码:
public formatReservedField(value: string) {
let pattern = /(http|https|ftp|ftps)\:\/\//gm;
if (pattern.test(value)) {
return this._sanitizer.bypassSecurityTrustHtml("<a href='" + value + "' target='_blank'>" + value + "</a>");
}
return value;
}
HTML code:
<div [innerHTML]="formatReservedField(reservedField)"></div>
答案 0 :(得分:1)
好的,我找到了它!
我已将我的组件的更改检测设置为OnPush
策略,现在可以使用了:
@Component( {
...
changeDetection: ChangeDetectionStrategy.OnPush,
...
}