我目前正试图实现Angular Material Library中的表格。Observable - 收听EventEmitter并发出初始
我需要包括分页&排序,所以我跟着提供的示例“表与排序” & “表与分页”。
我有不同之处在于使用角度提供HttpClient
从REST端点得到我的数据。
这是当前的代码(简化):
服务:
@Injectable()
export class DataService {
constructor(private http: HttpClient) {
}
getData(page: number, size: number, sort: string): Observable<Data[]> {
const params = new HttpParams()
.set('page', String(page))
.set('size', String(size))
.set('sort', String(sort));
return this.http.get<Data[]>('/api/v1/data', {params: params});
}
}
的DataSource:
export class DataDataSource extends DataSource<Data> {
constructor(private dataService: DataService, private sort: MdSort, private paginator: MdPaginator) {
super();
}
connect(collectionViewer: CollectionViewer): Observable<Data[]> {
const displayDataChanges = [
this.sort.mdSortChange,
this.paginator.page
];
return Observable.merge(...displayDataChanges).flatMap(() => {
let sortStr = this.sort.active + (this.sort.direction == 'asc' ? ',asc' : ',desc');
return this.dataService.getData(this.paginator.pageIndex, this.paginator.pageSize, sortStr);
});
}
disconnect(collectionViewer: CollectionViewer): void {
}
}
实际问题
在该例子中一个Behaviour
用于发出Event
到Observable
每次数据更改。 因为我正在使用REST端点,所以没有这种行为。
因此,显示的表是空的,直到发出分页或排序事件。
如何intially触发用户(表)最初加载数据?
我很新的给JavaScript &的Rx,所以我已经提前道歉,如果这是一个愚蠢的问题:)
谢谢您的回答!不幸的是,这不是问题。看到我的答案。 – JDC