语境
我正在开始一个学生项目,它是 angular2 的度量工具。
我实际上正在研究概念证明,证明我只能使用静态注册方法在运行时获取组件的指标,该方法myLibClass.registerComponents([Component1, Component2,...])
将具有像这样的实现(伪代码):
registerComponents(components:any[]):void{
components.forEach(component => {
//Register metric methods on zone foreTask and afterTask
});
}
问题
我怎样才能获得的全球区域angular2
?我想在 ng2 zone 上绑定我的方法,以便能够检查每个调用的执行时间,而NgZone不提供执行此类操作的工具。
另一个从外部类度量组件的想法也是受欢迎的
更新:
我做了一些研究,发现如何使用 ̀ Zone.current` 获取全局 angular2 区域。
问题仍然存在,因为它的第二部分(最难的部分)尚未实现:
我想在 ng2 zone 上绑定我的方法,以便能够检查每个调用的执行时间,而NgZone不提供执行此类操作的工具。
做到这一点的唯一方法是分叉 angular2 区域并用我的分叉区域替换 angular 使用的实际区域(这是我看到的唯一方法)。
甚至可能吗?分叉区域不是问题,但我无法在 angular2 上连接它。
由于我需要的信息多于null
(如您在ngZone 的源代码中所见,触发的每个事件都是用null
),我需要有一个自定义区域供 angular2 使用,但我不能扩展 NgZone,因为它没有使用 DI 进行实例化,因此 angular2 使用的区域仍然是 NgZone。