【发布时间】:2017-09-20 12:12:41
【问题描述】:
有没有办法动态设置 *ngTemplateOutlet 指令的值?
类似的东西:
<div *ngFor="let item of [ 'div', 'span' ]">
<ng-container *ngTemplateOutlet="{{ item }}"></ng-container>
</div>
<ng-template #div>
<div>some text inside a div</div>
</ng-template>
<ng-template #span>
<span>some text inside a span</span>
</ng-template>
当然它不起作用,但我想它很好地解释了我想要实现的目标:如果项目是“div”,那么它应该显示#div 模板,如果它是“span”则显示#span一个。
【问题讨论】:
-
删除项目周围的双括号,它应该可以工作。
-
如果我只是删除括号,它将显示不存在的#item 模板。这意味着它不会显示任何内容。
-
尝试将 item 括在括号中以使其作为表达式进行评估。
*ngTemplateOutlet="(item.ref)"如果这不起作用,请执行let item of [ { ref: 'div' }, { ref: 'span'} ]并使用*ngTemplateOutlet="item.ref"查看此示例。 stackoverflow.com/questions/40418598/…
标签: angular angular2-template angular2-directives