Tôi đang cố gắng sử dụng thành phần Angular Material Autocomplete trong dự án Angular 2 của tôi. Tôi đã thêm vào sau đây vào mẫu của tôi.
<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>
Sau đây là thành phần của tôi.
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;
}
}
Tôi nhận được lỗi sau. Có vẻ như lệnh formControl
này không được tìm thấy.
Không thể liên kết với 'formControl' vì đây không phải là thuộc tính được biết đến của 'đầu vào'
Vấn đề ở đây là gì?
formcontrol
(chữ thường) chứ không phải formControl
- nếu bạn đang chạy các mẫu thông qua trình tải webpack html, điều này sẽ giúp: stackoverflow.com/a/40626329/287568
formControl
, bạn phải nhậpReactiveFormsModule
vào mô-đun của mình , không phải rootModule . Chỉ trong trường hợp bạn sử dụngFormControl
trong các mô-đun tính năng của bạn.