我目前正在为 angular 2 使用 ng2-completer ,它适用于使用关键字进行搜索。
我有两张桌子:
一位艺术家可以有多个节目,它是一对多的关系。
我需要使用艺术家的名字进行搜索,当我使用艺术家名称搜索时,它必须显示所有"显示"特别是"艺术家"。
这是我的代码:
this.dataService = completerService.local(this.searchData, 'artisName', 'artisName');
答案 0 :(得分:0)
这样做的最佳选择是创建Subject
,只要选择了新的艺术家,就会将修改过的节目列表发送到dataSource
。
public artistsDataService: CompleterData;
public showsDataService: CompleterData;
private showsSubject = new Subject();
constructor(completerService: CompleterService) {
this.artistsDataService = completerService.local(this.artists, 'artisName', 'artisName');
this.showsDataService = completerService.local(this.showsSubject, 'showName', 'showName');
}
public onArtistsSelected(selectedItem: CompleterItem) {
if (selectedItem) {
const artistShows = this.showsDataService.filter(...);
this.showsDataService.next(artistShows);
} else {
this.showsDataService.next([]);
}
}