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

时间:2019-08-19 19:01:46

标签: javascript angular typescript

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

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

在父组件中:

import $ from 'jquery';

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

  if (res[0] === undefined) {
    this.typeAhead.badRequest(true);
  }

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

2 个答案:

答案 0 :(得分:2)

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

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


@Component({
selector: 'app',
  template: `
    <child-component [badRequestFlag]="true"></child-component>
  `
})

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

答案 1 :(得分:0)

可能您应该复习lifecycle-hooks,我试图了解您在stackblitz中遇到的问题,但是我无法重播您描述的错误。希望对您有帮助