Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测角度9中的变量变化?_Javascript_Angular - Fatal编程技术网

Javascript 如何检测角度9中的变量变化?

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

我需要检测任何变量何时改变值并调用任何函数。函数现在并不重要,我只需要检测是否有任何值被更改。重要的是,我认为我需要检测每一个变化,而不仅仅是在init上

  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。我不能用胖箭头函数来处理这个问题。我没有错误,只是没有工作。