为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

largeQ 2021-09-17 12:31:09
我有一个带有 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() 函数中设置的值。我假设我遇到了范围界定问题,但我无法确定是什么以及如何解决它。
查看完整描述

2 回答

?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

我建议使用输入来设置 badRequestFlag :


class ChildComponent {

  @Input() badRequestFlag: boolean;

}



@Component({

selector: 'app',

  template: `

    <child-component [badRequestFlag]="true"></child-component>

  `

})

您可以将其绑定到父控制器中的变量: [badRequestFlag]="requestFlag"


查看完整回答
反对 回复 2021-09-17
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

也许您应该查看生命周期挂钩,我尝试了解您在stackblitz 中的问题,但我无法重播您描述的错误。我希望能帮助你


查看完整回答
反对 回复 2021-09-17
  • 2 回答
  • 0 关注
  • 149 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信