我希望使用angular2/material2的Autocomplete组件从服务器获取数据。(https://material.angular.io/components/component/autocomplete)
ts
emailCtrl: FormControl;
filteredEmails: any;
constructor(
private companieService: CompanieService,
) {
this.emailCtrl = new FormControl();
this.filteredEmails = this.emailCtrl.valueChanges
.startWith(null)
.map(email => this.filterEmails(email));
}
filterEmails(email: string) {
this.userService.getUsersByEmail(email)
.subscribe(
res => {
return res
},
error => {
console.log(error);
}
)
}
HTML
<md-input-container>
<input mdInput placeholder="Email" [mdAutocomplete]="auto" [formControl]="emailCtrl" [(ngModel)]="fetchedUser.profile.email">
</md-input-container>
<md-autocomplete #auto="mdAutocomplete">
<md-option *ngFor="let email of filteredEmails | async" [value]="email">
{{email}}
</md-option>
</md-autocomplete>
服务: userService.getUsersByEmail(email)
正在获取这种类型的数据:
['email1@email.com','email2@email.com','email3@email.com']
我没有错误,但自动完成没有结果。 在Chrome的调试器(网络选项卡)中,我看到每次更改输入时数据都被正确地拉取。