是否可以从formcontrol获取minlength值?

时间:2019-05-03 18:07:10

标签: angular forms typescript components frontend

所以我有表格验证。 我的问题是,例如我可以获取创建formControl时传递的minlength值吗?

我没有找到任何信息。

这是我的愚蠢组件,我想获取minlength值以传递给信息。现在我需要通过@Input()传递它。

title: ['', [Validators.required, Validators.minLength(4), Validators.maxLength(20)]]

<div class="validation-window">
  <p *ngIf="errors.required">
    {{field}} required
  </p>
  <p *ngIf="formControl.hasError('minlength')">
      {{field}} at least {{minLegth}} characters
  </p>
  <p *ngIf="formControl.hasError('maxlength')">
      {{field}} at least {{maxLength}} characters
  </p>
</div>

我想将{{maxLength}}替换为formControl.validators.minlength.value;

2 个答案:

答案 0 :(得分:1)

是的,您可以使用maxlength和minlength访问长度的编号。您可以在error和&.maxlength.requiredLength下的minlength.requiredLength对象中找到它。还有一个带有actualLength的字段,但是您似乎不需要它,但是有时您会需要它! :)

<p *ngIf="formControl.hasError('maxlength')">
  {{field}} at max {{formControl.errors.maxlength.requiredLength}} characters
</p>

<p *ngIf="formControl.hasError('minlength')">
  {{field}} at least {{formControl.errors.minlength.requiredLength}} characters
</p>

DEMO

答案 1 :(得分:0)

恐怕在angular中没有这样的东西,例如在angular.io上,在内置验证器示例中,他们使用的是原始编码的最小长度错误Built-in validators

<div *ngIf="name.errors.minlength">
    Name must be at least 4 characters long.
</div>

但是您可以将minLength / maxLength值存储在变量中并显示该变量。