我尝试在Angular中实现嵌套翻译(链接的内容具有翻译功能,此链接必须嵌入到另一个翻译中),这一切都归结为以下情况:
<ng-template #link>
<a href="#">Test</a>
</ng-template>
<p>Your link: {{link}}</p>
但是,在上面的例子中,link
是TemplateRef对象。所以我的问题是,如何用TemplateRef的内容替换大括号的内容?
提前谢谢!
答案 0 :(得分:3)
更新Angular 5
ngOutletContext
已重命名为ngTemplateOutletContext
另见https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
<强>原始强>
NgTemplateOutlet
做你想做的事:
<p>Your link: <ng-container *ngTemplateOutlet="link"></ng-container></p>
您还可以传递上下文数据以用于模板内的绑定。
https://angular.io/api/common/NgTemplateOutlet
在StackOverflow上搜索NgTemplateOutlet
应该提供更多示例。
<强>更新强>
<ng-template #linkTemplate let-link>
<a href="#">{{link}}</a>
</ng-template>
<p>Your link: <ng-container *ngTemplateOutlet="linkTemplate; context: {$implicit: link}"></ng-container></p>
答案 1 :(得分:0)
您还可以在下面的方式中使用条件拟合模板。如果您想在其他情况下加载模板。
<ng-content *ngIf="!content; else link">
</ng-content>
<ng-template #link>
<div [innerHtml]="otherContent">
</div>
</ng-template>
</div>