Angular 2:什么使服务成为“外部”角区?

时间:2017-06-06 13:42:11

标签: angular components observable zone

在StackOverflow上出现与许多人相同的问题后,我无法理解什么是“外角区域”服务?

我已经检查了围绕这个主题的所有现有问题,这正是我要问这个问题的原因:

默认ChangeDetectionStrategy的任何组件中的代码示例: (考虑在视图中引用 this.value

this.myService.method().subscribe(e => {
    this.value = e;
  });

如果给定服务不是“外角区域”,则视图 刷新,另一方面,如果它是“外部角度区域“,视图刷新,除非我们调用ChangeDetectorRef.detectChanges()。

所以问题是:如果服务是在内部还是外部“Angular Zone”,应该知道什么条件?

2 个答案:

答案 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

我的运气是它使用的是相同的库。如此外部资源中所述,管理实例化外部库对象将解决视图刷新问题,并让此服务成为“内部角度区域”。