0

我正在将数据从父母传递给孩子。在 HTML 中,我可以看到 Input() 变量的值。但是,在我的 TS 文件中,当我尝试执行条件检查 Input() 的值时,它始终是一个空字符串。这是我给孩子的代码:

@Input() checkDbStatus = '';

  ngOnInit() {
    this.initForm();
    this.dbStatusCheck();
}

// disables all controls in a form group
disableControl(group: FormGroup){
  Object.keys(group.controls).forEach((key: string) => {
    const abstractControl = group.get(key);
    abstractControl.disable();
  })
}

// disable form controls if dbStatus !== update
dbStatusCheck() {
    if(this.checkDbStatus !== 'update') {
      this.disableControl(this.demographicsSectionOne);
      this.disableControl(this.demographicsSectionTwo);
      this.disableControl(this.demographicsSectionThree);
      this.disableControl(this.demographicsSectionFour);
      this.disableControl(this.demographicsSectionFive);
  }
}
4

2 回答 2

0

尝试设置并获取 input() 函数 https://angular.io/guide/component-interaction

_checkDbStatus:任何;

@Input() 设置 checkDbStatus(数据:任意) {

this._checkDbStatus = 数据;this.dbStatusCheck(数据)

}

获取 checkDbStatus(){返回 this._checkDbStatus }

于 2019-09-16T04:37:41.393 回答
0

我认为您需要使用 ngChange 生命周期。

https://angular.io/api/core/OnChanges

export class YourComponent implements OnChanges

ngOnChanges(changes: SimpleChanges) {

  if (changes.checkDbStatus.currentValue !== changes.checkDbStatus.previousValue) {
    this.doStatusCheck();
  }
}
于 2019-09-16T02:18:23.580 回答