相关疑难解决方法(0)

如何将 mat-error 动态添加到 mat-input-field?

我想通过将 < mat-error > 动态添加到 DOM 来在用户超过 maxLength 时显示错误。

我已经有一个属性指令来限制输入字段的最大长度。我把它作为一个指令,因为它被应用于项目中不同文件的许多输入字段。但现在的问题是,当用户超过限制时,我必须显示一个mat-error。我不想自己在所有文件的每个输入字段下添加 < mat-error > ,我想要一个模块化的解决方案。这可以通过使用现有指令本身来完成吗?

<mat-form-field floatLabel="auto">
      <input [formControl]="displayNameControl"
        mongoIndexLimit
        [charLength]="charLength"
        matInput
        name="displayName"
        placeholder="Stack Name"
        autocomplete="off"
        required />
    </mat-form-field>
Run Code Online (Sandbox Code Playgroud)

这是我的指示

import { Directive, OnInit, NgModule, ElementRef, OnChanges, Input, SimpleChanges, Renderer2 } from '@angular/core';

@Directive({
  selector: '[mongoIndexLimit]'
})
export class MongoIndexLimitDirective implements OnInit, OnChanges {
  @Input() public charLength?: number;
  private maxLength = 5;
  constructor(
    private el: ElementRef<HTMLElement>,
    private renderer: Renderer2
  ) { }

  public ngOnInit() { …
Run Code Online (Sandbox Code Playgroud)

typescript angular-material angular

5
推荐指数
1
解决办法
9698
查看次数

标签 统计

angular ×1

angular-material ×1

typescript ×1