Angular 2 - 在子组件中转换

时间:2016-02-16 23:50:24

标签: components angular transclusion

我有一个树视图组件(使用树视图项组件),我想让用户定义项的模板。

这样的事情(将显示"项目:"后跟粗体名称):

<tree-view 
    [children]="folders" 
    childrenProperty="children">
    <template>Item:<b>{{item.name}}</b></template>
</tree-view>

我可以使用TemplateRef组件类中的@ContentChild检索TreeView并从TreeViewItem组件访问它,但我还没找到如何注入它进入项目的dom。

您可以在我的树视图组件上找到一个Plunker:http://plnkr.co/edit/IMqKV4TrwHoiWfJKHHQn?p=preview

有没有办法使用Angular 2实现这一目标?

1 个答案:

答案 0 :(得分:2)

经过大量的挖掘,我发现没有办法达到我想要的目的。

解决方法是为树的每个项目加载(使用DynamicComponentLoader)给定组件(在输入中)。

<tree-view 
    [children]="folders" 
    childrenProperty="children"
    [itemComponentClass]="itemComponent">
</tree-view>

其中itemComponent是对组件类(具有模板)的引用。

不是更好的方式,但它正在发挥作用:http://plnkr.co/edit/96IWGkw3owtUWfuG299V?p=preview