小编Ale*_*lex的帖子

如何在自定义验证器中访问组件变量?

我想制作自定义验证器,只有当表单中的文本是唯一的时,它才会使提交按钮可用。我有 VulnarabilitiesClass 实例,它包含一个带有 id 和 name 字段的对象数组。在我的表单中输入任何文本后,我收到此错误:错误:未定义不是对象(评估“this.systemVulnarabilities”)

<form [formGroup]="profileForm">
  <label>
    Vulnarability Name:
    <input type="text" formControlName="name" required>
  </label>
</form>

<p>
  Form Status: {{ profileForm.status }}
</p>
<form [formGroup]="profileForm" (ngSubmit)="onSubmit()">
<button type="submit" [disabled]="!profileForm.valid">Submit</button>
Run Code Online (Sandbox Code Playgroud)
this.systemVulnarabilities = new VulnarabilitiesClass();

profileForm = this.fb.group({
    name: ['', Validators.required,this.UniqueNameValidator],
  });

private UniqueNameValidator(control: FormControl): ValidationErrors{
  let vulnarabilityName: string = control.value;
  console.log(vulnarabilityName);
  console.log(this.systemVulnarabilities.displayList.toString());//no output already
  let found: number = this.systemVulnarabilities.displayList.map(function(e) { return e.name; }).indexOf(vulnarabilityName); //mistake
  if(found === -1){
    return {invalidPassword: 'this name already exists'};
  }
  return null;
}
Run Code Online (Sandbox Code Playgroud)

forms validation angular

2
推荐指数
1
解决办法
514
查看次数

标签 统计

angular ×1

forms ×1

validation ×1