使用RouterLink动态添加元素

耶隆1984

当我将锚元素放置在像这样的2号角组件中时,

<a [routerLink]="['/LoggedIn/Profile']">Static Link</a>

一切正常。单击链接时,角度路由器会将我路由到目标组件。

现在,我想动态添加相同的链接。在我的应用程序中的某个地方,我有一个“通知组件”,其唯一职责是显示通知。

通知组件执行以下操作:

  <div [innerHTML]="notification.content"></div>

其中notification.content是NotificationComponent类中的字符串变量,并且包含要显示的HTML。

notification.content变量可以包含类似

 <div>Click on this <a [routerLink]="['/LoggedIn/Profile']">Dynamic Link</a> please</div>

一切正常,并显示在屏幕上,但是当我单击动态链接时,什么也没发生?!

有没有一种方法可以让有角度的路由器使用此动态添加的链接?

ps。我知道DynamicComponentLoader,但是我确实需要一个更不受限制的解决方案,在这里我可以使用各种不同的链接将各种HTML发送到通知组件。

贡特·佐赫鲍尔(GünterZöchbauer)

routerLink是指令。并非为使用添加的HTML创建指令和组件[innerHTML]Angular不会以任何方式处理此HTML。

推荐的方法是不使用[innerHTML],但 DynamicComponentLoader ,你的包裹中的HTML组件,并动态地添加它。 ViewContainerRef.createComponent

有关示例,请参见带有用户单击所选组件的Angular 2动态选项卡

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章