在此页面here。
可以看到Facebook登录按钮最初被禁用。 (使用[disabled]="myProperty"
)
API请求/facebooklogin/isnewuser
返回后,启用。
一切正常。但是,在我点击页面之前,该按钮不会被重新呈现。
我也注意到,大多数涉及Angular数据绑定器的事情都会发生这种情况。
在Firefox&铬
答案 0 :(得分:4)
似乎由于某种原因,变更检测不会发生。您可以使用 NgZone
“强制”它,或使用 ChangeDetectorRef
手动触发更改检测:
import { ChangeDetectorRef } from '@angular/core'
constructor(private ref: ChangeDetectorRef) {}
然后在设置变量后运行detectChanges()
:
// whatever you are using to disable/enable button
this.myProperty = false;
this.ref.detectChanges();
或使用NgZone
:
import { NgZone } from '@angular/core'
constructor(private ngZone: NgZone) {}
并在启用按钮时添加以下内容:
// whatever you are using to disable/enable button
this.ngZone.run(() => {this.myProperty = false})
我不能再说出为什么会发生这种情况。我注意到,一旦这些事情发生在没有明显原因的情况下,这似乎就是其中之一。如果有人对此有所了解,请告诉我们。没有遇到任何能够解释这一点的人,但是:)