我有一个带有viewChild()的组件,该组件绑定到一个子组件,该子组件用于调用子组件中的函数。该函数接受true或false的参数,并且旨在将子组件中的类变量设置为参数的值。然后,将在子组件中另一个函数的if语句中读取class变量。
到目前为止,我已经成功地从父组件中调用了子组件函数,将布尔参数传递给它,设置了类变量,并将其打印到控制台。我已经验证了类函数包含在组件的“ this”中。
在父组件中:
import $ from 'jquery';
在儿童部分: onSubmit()函数中的控制台日志仅返回声明变量时设置的_badRequestFlag值,而不返回badRequest()中分配的值。
if (res[0] === undefined) {
this.typeAhead.badRequest(true);
}
当我尝试在onSubmit()函数中使用类变量时,它的值仅是使用其声明的值,而不是badRequest()函数中设置的值。我以为我遇到了范围界定问题,但是我无法确定解决问题的方式和方法。
答案 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中遇到的问题,但是我无法重播您描述的错误。希望对您有帮助