Bac*_*tnz 1 javascript browser angular
在这个页面在这里。
可能会看到Facebook登录按钮最初被禁用。(使用[disabled]="myProperty"
)
API请求/facebooklogin/isnewuser
返回后,便已启用。
一切正常。但是,在我单击页面之前,不会重新渲染该按钮。
我还注意到,在涉及Angular中的数据绑定程序的大多数情况下都会发生这种情况。
在Firefox和Chrome上测试
似乎由于某种原因未按要求进行更改检测。您可以使用以下命令“强制”它,也可以使用NgZone
以下命令手动触发更改检测ChangeDetectorRef
:
import { ChangeDetectorRef } from '@angular/core'
constructor(private ref: ChangeDetectorRef) {}
Run Code Online (Sandbox Code Playgroud)
然后detectChanges()
在设置变量后运行:
// whatever you are using to disable/enable button
this.myProperty = false;
this.ref.detectChanges();
Run Code Online (Sandbox Code Playgroud)
或使用NgZone
:
import { NgZone } from '@angular/core'
constructor(private ngZone: NgZone) {}
Run Code Online (Sandbox Code Playgroud)
并在启用按钮的位置添加如下内容:
// whatever you are using to disable/enable button
this.ngZone.run(() => {this.myProperty = false})
Run Code Online (Sandbox Code Playgroud)
我无话可说。我已经注意到,尽管这些事情无缘无故地发生了,但这似乎是其中一种情况。如果有人对此有所了解,请告诉。尚未遇到任何能够解释这一点的人:)
归档时间: |
|
查看次数: |
809 次 |
最近记录: |