我有一个带有 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"
添加回答
举报
0/150
提交
取消