从Angular 2模型驱动的表单访问验证信息?

时间:2016-06-01 23:03:58

标签: validation angular

我有一个Angular 2表单,它使用模板驱动的方法,我转换为模型驱动的方法。目前,表单使用如下样式:

  buildForm() {
    this.heroForm = this.fb.group({
      'name': [this.model.name, 
               Validators.compose([Validators.required,
                          Validators.minLength(4),
                          Validators.maxLength(24)])],
      'alterEgo': [this.model.alterEgo],
      'power': [this.model.power, Validators.required]
    });

这标记了具有绿色条所需属性的所有字段。

现在我将其移动到模型驱动,控件不再具有“必需”属性。有没有办法访问与控件相关的验证规则(见下文),并在表单中使用绑定?

{{1}}

1 个答案:

答案 0 :(得分:1)

我能够通过使用我的内部数据结构和构建这样的方法来提供这种逻辑:

  isRequired(controlName: string): boolean {
      if (Object.keys(this._validationMessages).includes(controlName)) {
        return Object.keys(this._validationMessages[controlName]).includes('required');}
      return false;
  }

然后模板绑定到此方法,传入控件的名称。