Angular 2 Directive和FormGroup:将所有输入文本更改为大写

时间:2017-07-17 06:04:56

标签: angular2-directives angular2-formbuilder

请帮忙。我在创建一个通用指令时遇到了麻烦,该指令总是将所有输入类型文本设置为大写。

下面是我的指示:

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,如何使指令仍然有效?

0 个答案:

没有答案