Javascript 一个函数中设置的角度分量类变量在另一个函数中未定义

Javascript 一个函数中设置的角度分量类变量在另一个函数中未定义,javascript,angular,typescript,Javascript,Angular,Typescript,我有一个组件,它的viewChild()绑定到一个子组件,我用它调用子组件中的函数。该函数接受true或false参数,用于将子组件中的类变量设置为该参数的值。然后,类变量将在子组件中另一个函数的if语句中读取 到目前为止,我已经成功地从父组件调用了子组件函数,将布尔参数传递给它,设置类变量,并将其打印到控制台。我已经验证了类函数包含在组件的“this”中 在父组件中: if (res[0] === undefined) { this.typeAhead.badRequest(tru

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

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

在父组件中:

  if (res[0] === undefined) {
    this.typeAhead.badRequest(true);
  }
在子组件中: onSubmit()函数中的控制台日志仅返回声明变量时设置的_badRequestFlag的值,而不是在badRequest()中指定的值


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

我建议改为使用输入设置badRequestFlag:

class ChildComponent {
  @Input() badRequestFlag: boolean;
}


@Component({
selector: 'app',
  template: `
    <child-component [badRequestFlag]="true"></child-component>
  `
})
类子组件{
@Input()badRequestFlag:布尔值;
}
@组成部分({
选择器:“应用程序”,
模板:`
`
})

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

我建议使用输入设置badRequestFlag:

class ChildComponent {
  @Input() badRequestFlag: boolean;
}


@Component({
selector: 'app',
  template: `
    <child-component [badRequestFlag]="true"></child-component>
  `
})
类子组件{
@Input()badRequestFlag:布尔值;
}
@组成部分({
选择器:“应用程序”,
模板:`
`
})

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

可能您应该查看,我试图了解中的问题,但我无法重播您描述的错误。我希望能帮助你

也许你应该复习一下,我试图理解你的问题,但我不能重演你所描述的错误。我希望能对您有所帮助

我认为您在ViewChild中寻找的功能是落后的。如果您要执行相反的操作,并尝试在父组件中设置变量,这将起作用。当从父级到子级进行通信时,最好使用@Input运算符,并使用[]语法将变量传递给父级dom。您对其他人的要求太高,以至于他们无法想象、测试和运行这一功能。你可能想看看StackBlitz……我认为你在ViewChild中寻找的功能是向后的。如果您要执行相反的操作,并尝试在父组件中设置变量,这将起作用。当从父级到子级进行通信时,最好使用@Input运算符,并使用[]语法将变量传递给父级dom。您对其他人的要求太高,以至于他们无法想象、测试和运行这一功能。你可能想看看StackBlitz。。。。