请帮忙。我在创建一个通用指令时遇到了麻烦,该指令总是将所有输入类型文本设置为大写。
下面是我的指示:
import { Directive, ElementRef, HostListener } from '@angular/core';
import { NgControl } from "@angular/forms";
@Directive({
selector: 'input[type="text"]:not(.none-transform)',
host:{
'(input)':'format($event)'
}
})
export class TextUppercase {
constructor(private _el: ElementRef, private _control? : NgControl) {
}
format(value) {
let uppercase = this._el.nativeElement.value.toUpperCase();
this._control.control.setValue(uppercase);
}
}
当我没有在表单中设置formControl时,会出现此错误:
错误错误:未捕获(承诺):错误:没有NgControl的提供程序!
错误:没有NgControl的提供者!
如果没有设置formControl,如何使指令仍然有效?