Javascript 使用ngClass更改指针

Javascript 使用ngClass更改指针,javascript,angular,typescript,angular8,ng-class,Javascript,Angular,Typescript,Angular8,Ng Class,我正在使用ngClass添加和删除类。我想换个指针。组件的html代码 [ngClass]=“{'zoom-cursor':cyClass}” 在同一组件的相应类型脚本代码中,有一个名为cyClass的布尔值 我的css代码是 。缩放光标{ 游标:url(../src/assets/img/zoom cursor.svg),指针!重要; } 如果移动鼠标,指针图像将按预期更改但是如果鼠标不移动,则不会发生任何变化。我想马上看到变化。看起来angular没有渲染更改。我试图手动触发它,但找不到方法

我正在使用ngClass添加和删除类。我想换个指针。组件的html代码

[ngClass]=“{'zoom-cursor':cyClass}”

在同一组件的相应类型脚本代码中,有一个名为
cyClass
的布尔值

我的css代码是
。缩放光标{
游标:url(../src/assets/img/zoom cursor.svg),指针!重要;
}


如果移动鼠标,指针图像将按预期更改但是如果鼠标不移动,则不会发生任何变化。我想马上看到变化。看起来angular没有渲染更改。我试图手动触发它,但找不到方法。

您可以注入ChangeDetectorRef并手动触发更改检测:

constructor(private ref: ChangeDetectorRef) {}

// In code, where you the value of cyClass, call
this.ref.detectChanges();

如何更改cyClass变量?通过任何HTML元素上的点击事件?如果您使用click events更改变量,最初这些HTML元素有自己的游标属性,因此无法立即看到更改,您还需要将[ngClass]应用于这些HTML元素。在这个fork中,我通过“Left button”单击并将[ngClass]应用于“Left button”来更改cyClass值——以及Hemendra,我认为您正在更改变量“cyClass”的值。不久前,我发疯了,因为我在过滤数组时使用了
=
,而不是
=
。我不明白,但在我重新启动计算机后,它以某种方式按预期工作。我甚至没有调用像
detectChanges
这样的方法。PS焦点应放在浏览器屏幕上(如果单击以删除控制台日志,则应单击浏览器上的某个位置)