【发布时间】:2019-04-29 18:11:31
【问题描述】:
我有一段很长的文本要在我的应用程序中显示,所以我想使用 HTML 字符串。
// component
description: string = `<p>Hello world. <a routerLink="/home">Click here</a> to go to the home page.</p>`;
// template
<div class="content">
<div innerHTML="description"></div>
</div>
这可以正确呈现,除了 Angular 删除了 routerLink 部分并且链接不起作用。我曾尝试使用自定义管道将字符串传递给DomSanitizer 函数bypassSecurityTrustHtml(),但 Angular 没有接受语法,也没有将其视为routerLink。
【问题讨论】:
-
一句忠告,在 2019 年,如果你发现自己在写
innerHTML,那你就错了。 -
@Stavm 想解释一下为什么?据我了解,这是在 Angular 中嵌入基于字符串的 HTML 所必需的。
-
这里使用routerLink的目的是什么?你为什么不放一个普通的[href]?
-
@MauroAguilar 任何人都会使用 routerLink 的相同原因:使用 Angular 路由器激活路径:angular.io/guide/router
-
你不能。 Angular 指令必须是要由 Angular 编译器编译的模板的一部分。
标签: angular