在StackOverflow上出现与许多人相同的问题后,我无法理解什么是“外角区域”服务?
我已经检查了围绕这个主题的所有现有问题,这正是我要问这个问题的原因:
默认ChangeDetectionStrategy的任何组件中的代码示例: (考虑在视图中引用 this.value )
this.myService.method().subscribe(e => {
this.value = e;
});
如果给定服务不是“外角区域”,则视图 刷新,另一方面,如果它是“外部角度区域“,视图不刷新,除非我们调用ChangeDetectorRef.detectChanges()。
所以问题是:如果服务是在内部还是外部“Angular Zone”,应该知道什么条件?
答案 0 :(得分:0)
据我所知,无法检查是否有东西运行" Inside"或"外部"角区。如果您使用zone.runOutsideAngular
,它会在您的区域之外运行。第二个出现在我的脑海中:你为什么想知道?
答案 1 :(得分:0)
看起来我自己发现了自己的回答,但我希望这对其他人有帮助:
“Outside Angular Zone”服务是一个未在Angular Context中实例化的类。 在这种情况下,许多使用静态访问器的库很容易受到影响,这是一个例子:
http://techqa.info/programming/question/34592857/view-is-not-updated-on-change-in-angular2
我的运气是它使用的是相同的库。如此外部资源中所述,管理实例化外部库对象将解决视图刷新问题,并让此服务成为“内部角度区域”。