javascript - 一个函数中的角度组件类变量集在另一个函数中未定义
问题描述
我有一个带有 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() 函数中设置的值。我假设我遇到了范围界定问题,但我无法确定什么以及如何解决它。
解决方案
我建议使用输入来设置 badRequestFlag :
class ChildComponent {
@Input() badRequestFlag: boolean;
}
@Component({
selector: 'app',
template: `
<child-component [badRequestFlag]="true"></child-component>
`
})
您可以将其绑定到父控制器中的变量:[badRequestFlag]="requestFlag"
推荐阅读
- vue.js - Vuetify list-item-group,列表项的价值属性中的数组?
- xcode - 在 Xcode 中启动项目后,如何正确添加源代码管理?
- json - 使用循环从Linux中的文本文件创建//附加JSON数组
- javascript - AJAX 表示 WEBMETHOD 成功,但它从未真正触发后面代码的 webmethod
- kubernetes - 连接FFServer多个实例
- ruby-on-rails - 在我的 Rails 应用程序中为用户创建汽车的问题
- javascript - 如何在不重新加载 Webpack-Dev-Server 的情况下重新加载 Service-Worker(工作箱)?
- android - Android Mockito - 模拟枚举?
- android - 如何连接片段和布局
- simulation - Anylogic问题:一台机器上两个操作时间不同的操作员