我有一个树视图组件(使用树视图项组件),我想让用户定义项的模板。
这样的事情(将显示"项目:"后跟粗体名称):
<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实现这一目标?
答案 0 :(得分:2)
经过大量的挖掘,我发现没有办法达到我想要的目的。
解决方法是为树的每个项目加载(使用DynamicComponentLoader)给定组件(在输入中)。
<tree-view
[children]="folders"
childrenProperty="children"
[itemComponentClass]="itemComponent">
</tree-view>
其中itemComponent
是对组件类(具有模板)的引用。
不是更好的方式,但它正在发挥作用:http://plnkr.co/edit/96IWGkw3owtUWfuG299V?p=preview