有同样的问题,很多人在计算器上我没明白什么是“外部角区”服务后?角度2:什么使服务成为“外部”角区域?
我已经检查解决此问题的所有存在的问题,而且它也正是为什么我needer问这一个:
- https://github.com/angular/angular/issues/5150
- Angular2: view is not updated from inside a subscription
- https://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
- http://blog.assaf.co/angular-2-change-detection-zones-and-an-example/
具有默认更改的任何组件中的代码示例DetectionStrategy: (考虑THIS.VALUE在视图中引用)
this.myService.method().subscribe(e => {
this.value = e;
});
是给定的服务不 “外角区”,认为是刷新,而另一方面,如果这是“外角区域”,视图不是刷新,除非我们调用ChangeDetectorRef.detectChanges()。
所以,问题是:如何知道的情况,如果一个服务是内部或外部的“角区”?
不一定在运行时。我想知道什么样的服务能够自动更新视图以及哪些服务不是。 – Sid
everthing你将运行在'zone.runOutsideAngular'不会更新视图。 –