使用自定义搜索实现ng2-completer

时间:2017-06-15 06:53:15

标签: angular

我目前正在为 angular 2 使用 ng2-completer ,它适用于使用关键字进行搜索。

我有两张桌子:

  • 艺术家
  • 显示

一位艺术家可以有多个节目,它是一对多的关系。

我需要使用艺术家的名字进行搜索,当我使用艺术家名称搜索时,它必须显示所有"显示"特别是"艺术家"。

这是我的代码:

this.dataService = completerService.local(this.searchData, 'artisName', 'artisName'); 

1 个答案:

答案 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([]);
    }
}