检测组件属性 -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
}

最新更新