如果我使用路由构建一个HTML模板,如下所示
<ul class="sb-sub-menu">
<li>
<a [routerLink]="['clientadd']">Client Add</a>
</li>
</ul>
这正如我所期望的那样工作。
但是,如果我是从HTML格式的字符串构建动态UI,那么路由似乎并不适用。
<ul class="sb-sub-menu" [innerHTML]="links"></ul>
哪里
links: string = `
<li>
<a [routerLink]="['clientadd']">Client Add</a>
</li>`
在我的情况下,链接列表更复杂,我想看看是否有一种方法可以将它们加载为模板化的HTML,而不是需要创建模型。
有没有这样一种方法可以加载模板化的HTML字符串并使路由正常工作?
发布于 2016-07-18 14:03:56
Angular不会以任何方式处理动态添加的HTML。没有绑定,没有指令或组件实例化,...除了出于安全目的而进行的清理。
您可以使用ViewContainerRef.createComponent()
动态添加组件,如Angular 2 dynamic tabs with user-click chosen components中所述
如果您确实需要动态超文本标记语言(例如,用户提供的),则可以使用How to realize website with hundreds of pages in Angular2中解释的方法
发布于 2016-07-19 10:00:51
您可以尝试使用*ngFor
而不是innerHtml
动态创建链接
例如
<ul class="sb-sub-menu">
<li *ngFor="let item of menuItems">
<a [routerLink]="[item.url]">{{item.label}}</a>
</li>
</ul>
https://stackoverflow.com/questions/38438343
复制