Ich schreibe eine Bibliothek für die Gemeinschaft, die Zugriff auf das Formular Steuerelement benötigt und überwacht den Wert geändert.Angular 2 - Fehler: Kein Provider für FormControl
Hier ist, wie ich früher bei der Verwendung von eckigen 2.3 und 4.0.
export class ValidationMessageDirective implements OnInit {
@Input('validationMessage') customMessage: string;
constructor(private el: ElementRef, private formControl: NgControl, private validationMessageService: ValidationMessageService) {
this.target = $(el.nativeElement);
this.formGroup = this.target.closest('.form-group');
this.formControl.valueChanges.subscribe((newValue) => {
this.checkValidation();
});
}
}
Dieser Code funktioniert nach dem Upgrade auf eckig 4.1 nicht mehr. Hier ist der Fehler, die ich bekomme: ERROR Error: Uncaught (in promise): Error: No provider for NgControl!
Jede Anregung oder Idee für mich auf dem Wert zu hören in der Richtlinie geändert?
UPDATE 1: hier ist mein index.ts
import { NgModule, ModuleWithProviders } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ValidationMessageDirective } from './src/ng2-validation-message.directive';
import { ValidationMessageService } from './src/ng2-validation-message.service';
export * from './src/ng2-validation-message.directive';
export * from './src/ng2-validation-message.service';
@NgModule({
imports: [
CommonModule,
FormsModule,
ReactiveFormsModule
],
declarations: [
ValidationMessageDirective
],
exports: [
ValidationMessageDirective
],
})
export class Ng2ValidationMessage {
static forRoot(): ModuleWithProviders {
return {
ngModule: Ng2ValidationMessage,
providers: [ValidationMessageService]
};
}
}
Können Sie Ihr Bootstrap-Modul hochladen? – wannadream
@wannadream ja. habe gerade meine 'index.ts' gepostet. bitte guck dir das an. – crossRT