【发布时间】:2018-05-24 22:45:01
【问题描述】:
为什么订阅中的变量更改时视图没有更新?
我有这个代码:
example.component.ts
testVariable: string;
ngOnInit() {
this.testVariable = 'foo';
this.someService.someObservable.subscribe(
() => console.log('success'),
(error) => console.log('error', error),
() => {
this.testVariable += '-bar';
console.log('completed', this.testVariable);
// prints: foo-Hello-bar
}
);
this.testVariable += '-Hello';
}
example.component.html
{{testVariable}}
但视图显示:foo-Hello。
为什么不显示:foo-Hello-bar?
如果我在订阅中调用ChangeDetectorRef.detectChanges(),它将显示正确的值,但为什么我必须这样做?
我不应该从每个订阅中调用这个方法,或者根本不应该(角度应该处理这个)。有正确的方法吗?
我是否错过了从 Angular/rxjs 5 到 6 的更新?
现在我有 Angular 6.0.2 和 rxjs 6.0.0。相同的代码在 Angular 5.2 和 rxjs 5.5.10 中运行正常,无需调用 detectChanges。
【问题讨论】:
-
嗨,丹尼,我的回答对您有帮助还是您需要更多信息?如果有帮助,请将其标记为已接受的答案。
-
好的,谢谢。不知道区域的概念。
标签: typescript angular6 observable rxjs6 angular-changedetection