我在顶部有一个带有搜索输入的下拉菜单。
在我的 ts 文件中我有这些变量:
public raContinuousControl: FormControl;
public raList: IAssociateOptions[];
public filteredRaList$: Observable<IAssociateOptions[]>;
我有一份从我的服务中获得的清单,例如:
this._msService.getMilestoneData().subscribe(
data => {
this.raList = data.raList;
},
err => {
this._overlaySvc.close();
}
);
我将 Observable 设置为 onInit:
this.filteredRaList$ = this.raContinuousControl.valueChanges.pipe(
startWith(''),
map((ra) =>
ra ? this.filterRaList(ra) : this.raList.slice()
)
);
<form>
<mat-form-field class="tableFilters">
<input matInput
placeholder="RA"
aria-label="RA"
[formControl]="raContinuousControl"
[matAutocomplete]="raAuto"/>
<mat-autocomplete #raAuto="matAutocomplete">
<mat-option *ngFor="let ra of filteredRaList$ | async"
[value]="ra.associateID">
<span>{{ra.associateName}}</span>
</mat-option>
</mat-autocomplete>
</mat-form-field>
</form>
每次我运行应用程序时,它都会说“无法读取未定义的属性(读取‘slice’)
我知道 raList[] 有价值,甚至在一个单独的函数中对它做了 slice() 。一直在努力解决这个问题,非常感谢任何帮助!!
我关注了这个 stackblitz https://stackblitz.com/edit/angular6-material-autocomplete-1ojdqa?file=src%2Fapp%2Fapp.component.html 并尝试将其实现到我自己的代码中。我是 RxJS 的新手