Angular 为什么异步验证程序回调赢了';没有组件上下文?
我注意到我没有从组件的某个方法访问该组件,我将该方法分配给一个异步验证器(模拟超时) 因此,我需要使用bind()强制其上下文。异步验证器总是这样吗?或者,是否还缺少任何其他内容,以便此方法将上下文保留在它所属的位置 代码如下: 请注意验证器的分配:Angular 为什么异步验证程序回调赢了';没有组件上下文?,angular,typescript,Angular,Typescript,我注意到我没有从组件的某个方法访问该组件,我将该方法分配给一个异步验证器(模拟超时) 因此,我需要使用bind()强制其上下文。异步验证器总是这样吗?或者,是否还缺少任何其他内容,以便此方法将上下文保留在它所属的位置 代码如下: 请注意验证器的分配: this.asyncExampleValidator.bind(this) 在数据驱动的.component.ts中,您可以 把“这个”放在你想要的地方 这里 onAddHobby(){ (this.myForm.get('嗜好')).push
this.asyncExampleValidator.bind(this)
在数据驱动的.component.ts中,您可以
把“这个”放在你想要的地方
这里
onAddHobby(){
(this.myForm.get('嗜好')).push(newformcontrol(“”,Validators.required,this.asyncExampleValidator.bind(this)));
}
“这”可能不是你所期望的
asyncExampleValidator也有同样的问题
我知道你应该在帖子中提供相关代码,因为链接可能会改变,只是一个建议:)@ASomeOneJ:我如何在这里嵌入plunkr代码?我想我在StackOverflow的其他问题中也看到过,我对实例函数一无所知。我尝试了它,而不是bind(),它很有效。然而,我觉得使用bind()更舒服,尽管他们解释说这是一个不太推荐的选择。谢谢你给我指出那个信息。
onAddHobby() {
(<FormArray>this.myForm.get('hobbies')).push(new FormControl('', Validators.required, this.asyncExampleValidator.bind(this)));
}