【发布时间】:2016-05-02 09:46:47
【问题描述】:
我从第一个 Alpha 版开始就一直在使用 Angular 2,但我一直坚持从组件创建可遍历树。
我有单独的组件配置和设置数据源,这些数据源是持久的,并且还会对关联组件的某些事件做出反应。此源是由视图中的角度组件表示的树。树节点与角度组件树完全匹配。
Components 继承自同一个抽象类 BaseComponent。组件可以包含任意数量的 BaseComponent 子实例,因此它不知道父/子的确切类型。
我想避免通过组件输入指定某种键。
有什么方法可以使用基类型获取父级吗?
TL;DR:我需要在不知道确切类型的情况下构建以下组件的父/子树
export abstract class BaseComponent {
public children: Array<BaseComponent>;
constructor(
//I need something like this but it's not working for ancestor classes
@Inject(forwardRef(() => BaseComponent))
private _parent: BaseComponent)
{
_parent.children.push(this);
}
}
@Component({...})
export class A extends BaseComponent {...}
@Component({...})
export class B extends BaseComponent {...}
@Component({...})
export class C extends BaseComponent {...}
@Component({...})
export class D extends BaseComponent {...}
【问题讨论】:
-
如何创建树?您是使用
*ngFor为模型中的数据呈现项目,还是这些项目是由 DOM 树创建的,例如<a-comp><b-comp></b-comp><b-comp><c-comp></c-comp></b-comp></a-comp>? -
它们是由 DOM 树创建的,*ngFor 在内部的一些组件中使用。
-
所以孩子们使用
<ng-content>进行投影?
标签: typescript angular