Javascript 如何检测角度9中的变量变化?
我需要检测任何变量何时改变值并调用任何函数。函数现在并不重要,我只需要检测是否有任何值被更改。重要的是,我认为我需要检测每一个变化,而不仅仅是在init上Javascript 如何检测角度9中的变量变化?,javascript,angular,Javascript,Angular,我需要检测任何变量何时改变值并调用任何函数。函数现在并不重要,我只需要检测是否有任何值被更改。重要的是,我认为我需要检测每一个变化,而不仅仅是在init上 dagAndDropUser: any; onAdd(e) { console.log(' add ', e.itemData) this.dagAndDropUser = e.itemData; // EVERY ADD VARIABLE CHANGE VALUES I NEED TO DETECT I
dagAndDropUser: any;
onAdd(e) {
console.log(' add ', e.itemData)
this.dagAndDropUser = e.itemData; // EVERY ADD VARIABLE CHANGE VALUES I NEED TO DETECT IT
e.toData.splice(e.toIndex, 0, e.itemData);
}
您可以使用EventEmitter。例如:
dagAndDropUser:任意;
dagAndDropUserValueChanges:EventEmitter=new EventEmitter();
onAdd(e){
console.log('add',e.itemData)
this.dagAndDropUser=e.itemData;//每次添加变量都会更改我需要检测的值
e、 toData.拼接(e.toIndex,0,e.itemData);
this.dagAndDropUserValueChanges.emit(例如itemData);
}
现在,如果要检测值更改,可以使用:
this.dagAndDropUserValueChanges.subscribe(itemData=>{
log('值更改:',itemData);
})
确保从@angular/core
导入EventEmitter
更新:如果出现错误,请确保将onAdd方法更改为arrow function方法,现在您可以使用应用程序组件的实例
例如:
onAdd=(e)=>{
console.log('add',e.itemData)
this.dagAndDropUser=e.itemData;//每次添加变量都会更改我需要检测的值
e、 toData.拼接(e.toIndex,0,e.itemData);
this.dagAndDropUserValueChanges.emit(例如itemData);
}
在这之后,您将得到一些预期的结果(“事件更改”)。好的,但我这里有一个问题。我对任何dag和drop都使用愚蠢的dev extreme,我对onAdd中的每个this函数都有一个问题。我可以在onAdd中不调用函数的情况下执行此操作吗?现在的错误是“error TypeError:无法读取未定义的”的属性“emit”,您可以提供完整的代码吗?。dx Direct的问题现在没有工作dag和drop。我不能用胖箭头函数来处理这个问题。我没有错误,只是没有工作。