为自定义验证提供额外参数

时间:2016-07-25 06:55:38

标签: angular angular2-forms

我正在尝试使用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。那么如何访问函数之外的数组呢?

1 个答案:

答案 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