Ich versuche, die Angular Material Autocomplete- Komponente in meinem Angular 2-Projekt zu verwenden. Ich habe meiner Vorlage Folgendes hinzugefügt.
<md-input-container>
<input mdInput placeholder="Category" [mdAutocomplete]="auto" [formControl]="stateCtrl">
</md-input-container>
<md-autocomplete #auto="mdAutocomplete">
<md-option *ngFor="let state of filteredStates | async" [value]="state">
{{ state }}
</md-option>
</md-autocomplete>
Das Folgende ist meine Komponente.
import {Component, OnInit} from "@angular/core";
import {ActivatedRoute, Router} from "@angular/router";
import {FormControl} from "@angular/forms";
@Component({
templateUrl: './edit_item.component.html',
styleUrls: ['./edit_item.component.scss']
})
export class EditItemComponent implements OnInit {
stateCtrl: FormControl;
states = [....some data....];
constructor(private route: ActivatedRoute, private router: Router) {
this.stateCtrl = new FormControl();
this.filteredStates = this.stateCtrl.valueChanges.startWith(null).map(name => this.filterStates(name));
}
ngOnInit(): void {
}
filterStates(val: string) {
return val ? this.states.filter((s) => new RegExp(val, 'gi').test(s)) : this.states;
}
}
Ich erhalte den folgenden Fehler. Es sieht so aus, als würde die formControl
Richtlinie nicht gefunden.
Kann nicht an 'formControl' gebunden werden, da es keine bekannte Eigenschaft von 'input' ist.
Was ist das Problem hier?
formcontrol
eher (Kleinbuchstaben) als formControl
- wenn Sie Vorlagen über den Webpack-HTML-Loader ausführen, hilft dies: stackoverflow.com/a/40626329/287568
formControl
müssen SieReactiveFormsModule
in Ihr Modul importieren , nicht in rootModule . Nur für den Fall, dass SieFormControl
in Ihren Funktionsmodulen verwenden.