我想为maxlength = 100建立指令,在我提交代码时,所有支持formControl和ngModule的maxlength都将设置为100。
@Directive({
selector: '[max-length]',
providers: [NgModel]
})
export class MaxLengthDirective implements OnInit {
@Output() ngModelChange: EventEmitter<any> = new EventEmitter();
@Input() limit: 100;
constructor (private hostElement:ElementRef, private renderer:Renderer2) {
}
@HostListener("keypress", ["$event"])
onkeypress(event) {
if (event.target.value.length === this.limit) {
event.preventDefault();
}
}
ngOnInit () {
const el = this.hostElement.nativeElement;
if (el.input === Number)
{
this.renderer.setAttribute(this.hostElement.nativeElement, 'maxlength', '100');
}
}
}
这是我到目前为止尝试过的代码,我只是从堆栈溢出中学到了。