【发布时间】:2017-09-20 09:25:34
【问题描述】:
我想使用带有 angular2 / material2 的自动完成组件从服务器获取数据。 (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 (tab network) 的调试器中看到输入中的每个更改都正确提取数据
【问题讨论】:
-
当用户点击输入框而不是等待输入第一个字母时,有什么办法让它显示全部可用?
标签: angular autocomplete angular-material