一个函数中的角度组件类变量集在另一个函数中未定义

我有一个带有 viewChild() 绑定到我用来调用子组件中的函数的子组件的组件。该函数采用 true 或 false 参数,旨在将子组件中的类变量设置为该参数的值。然后,类变量将在子组件中另一个函数的 if 语句中读取。


到目前为止,我已经成功地从父组件调用了子组件函数,将布尔参数传递给它,设置了类变量,并将其打印到控制台。我已经验证类函数包含在组件的“this”中。


在父组件中:


  if (res[0] === undefined) {

    this.typeAhead.badRequest(true);

  }

在子组件中:onSubmit() 函数中的控制台日志仅返回声明变量时设置的 _badRequestFlag 的值,而不是 badRequest() 中分配的值。


private _badRequestFlag: boolean = false;


badRequest (res: boolean) {

  this._badPlaRequestFlag = res;

}


onSubmit (): void {

  console.log('BAD PLA REQUEST:, ', this);

    if (this._badRequestFlag === true) {

      alert('Does Not Exist');

      throw (new Error('Does Not Exist'));

}

当我尝试在 onSubmit() 函数中使用类变量时,它的值只是声明时使用的值,而不是 badRequest() 函数中设置的值。我假设我遇到了范围界定问题,但我无法确定是什么以及如何解决它。


largeQ
浏览 150回答 2
2回答

ABOUTYOU

我建议使用输入来设置 badRequestFlag :class ChildComponent {&nbsp; @Input() badRequestFlag: boolean;}@Component({selector: 'app',&nbsp; template: `&nbsp; &nbsp; <child-component [badRequestFlag]="true"></child-component>&nbsp; `})您可以将其绑定到父控制器中的变量: [badRequestFlag]="requestFlag"

眼眸繁星

也许您应该查看生命周期挂钩,我尝试了解您在stackblitz 中的问题,但我无法重播您描述的错误。我希望能帮助你
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript