繁体   English   中英

检测组件属性的变化 - Angular 8

[英]detect changes in a component property -Angular 8

我有一个组件,您可以在其中使用按钮设置以下属性:

dataType:String = null
 fechaI : Date = null
 fechaF :Date = null
 checkedList =[]

我想在所有属性都有值时运行 http 请求,并且如果这些属性中的任何一个在运行时更改值,我就可以重做请求

我用 doCheck 尝试了以下操作

ngDoCheck(){
    if((this.checkedList !=null)&&(this.dataType!=null)&&(this.fechaI !=null)&&(this.fechaF !=null)){
      console.table(this.checkedList)
      console.log(this.dataType)
      console.log(this.fechaF)
      console.log('ENVIO DE OPCIONES')
      this.http.post('',{})
  }
}

但是每次我滚动或做任何事情时,doCheck 的钩子都会被触发,所以它对我来说不是一个可行的选择。我怎样才能达到预期的结果?

如果您试图检测控制器变量的变化,您应该走这条路:

在您的情况下使用更改检测的最佳方法是从您的变量创建一个对象,如下所示:

myObj = {
  dataType: null
  fechaI: null
  fechaF: null
  checkedList: []
}

然后在视图中:

<input type="text"  
  [ngModel]="myObj.dataType"
  (ngModelChange)="onChange($event)"
  name="dataType"
  required>

检测:

onChange($changes) {
  console.log($changes)
  this.http.post(myUrl, $changes) // Pretend
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM