我想通过将 < 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)