我正在尝试使用Angular2表单验证和魔杖来检查是否已经使用了该值:
namesArray = Users[];
ngOnInit() {
this.myForm = this.fb.group({
name: ['', Validators.compose([
Validators.required,
this.nameValidator
])
],
})
}
nameValidator(control:FormControl):{[key:string]:boolean} {
console.log(this.namesArray);
return null;
}
这给我一个错误:
无法读取属性' namesArray'未定义的
当我打印this
时,返回undefined。那么如何访问函数之外的数组呢?
答案 0 :(得分:5)
您需要传入胖箭头功能才能保留this
ngOnInit() {
this.myForm = this.fb.group({
name: ['', Validators.compose([
Validators.required,
(control) => this.nameValidator(control as FormControl)
])
],
})
}
更多关于胖箭头的信息:https://basarat.gitbooks.io/typescript/content/docs/arrow-functions.html