Javascript 角度8从外部库检索值

Javascript 角度8从外部库检索值,javascript,angular,color-picker,Javascript,Angular,Color Picker,我有一个Angular 8应用程序,我已经将库导入到我的项目中 它是一个JavaScript颜色选择器库 用法非常基本: 我已经在angular.json中更新了脚本 “脚本”: [ “node_modules/@jaames/iro/dist/iro.js” ] 然后使用库,如下所示 声明变量:任意; . . . 恩戈尼尼特(){ this.colorPicker=new iro.colorPicker(“#colorPicker container”); this.colorPicker.

我有一个Angular 8应用程序,我已经将库导入到我的项目中

它是一个JavaScript颜色选择器库

用法非常基本:

我已经在angular.json中更新了脚本

“脚本”:
[
“node_modules/@jaames/iro/dist/iro.js”
]
然后使用库,如下所示

声明变量:任意;
.
.
.
恩戈尼尼特(){
this.colorPicker=new iro.colorPicker(“#colorPicker container”);
this.colorPicker.on('color:change',this.onColorChange');
}
颜色变化(颜色、变化){
this.selectedColor=color.hextString;
console.log(this.selectedColor);
}
即使值被打印出来,值实际上也没有改变

我有一个div元素,它使用这个变量来显示颜色,但它不会改变


我还尝试调用ChangeDetectorRef.detectChanges()方法,但它说,
iro.js无法调用未定义的
的detectChanges()(因为ChangeDetectorRef被注入到组件构造函数中,而库不知道)


你知道如何将颜色十六进制值从库中检索到我的角度分量吗?

iro.js未在ngZone中运行,请将其注入并使用它运行函数以正确更改检测工作:

constructor(private ngZone: NgZone) {}

this.colorPicker.on('color:change', (color, changes) =>  this.ngZone.run(() => this.onColorChange(color, changes)));

iro.js未在ngZone中运行,请注入它并使用它运行您的功能以正确更改检测工作:

constructor(private ngZone: NgZone) {}

this.colorPicker.on('color:change', (color, changes) =>  this.ngZone.run(() => this.onColorChange(color, changes)));

祝福你。我不知道有NgZone这样的东西。它就像一个符咒。如果可能的话,我会接受你的回答。是的,小心点,如果你不删除事件侦听器,看起来你有一点内存泄漏哦,谢谢你的建议。在NGS中删除它是否足够?在库文档中有一种方法:colorPicker.off('color:change',onColorChange);在大多数情况下,Ngondestory是正确的地方,除非你。我不知道有NgZone这样的东西。它就像一个符咒。如果可能的话,我会接受你的回答。是的,小心点,如果你不删除事件侦听器,看起来你有一点内存泄漏哦,谢谢你的建议。在NGS中删除它是否足够?在库文档中有一种方法:colorPicker.off('color:change',onColorChange);在大多数情况下,Ngondestory是正确的选择