изменил службу:
public getCatalog() {
console.log(this.catalog);
return this.catalog;
}
loadCatalog() {
this.fetchCatalog().subscribe(catalog => this.catalog.next(catalog));
}
public fetchCatalog(): Observable<Catalog[]> {
return this.http.get<Catalog>(ZUORA_URL + '/v1/catalog/products?page=1&pageSize=10', { headers })
.pipe(
expand(catalog => {
if (!catalog.nextPage) {
return EMPTY;
}
return this.http.get<Catalog>(ZUORA_URL + catalog.nextPage, { headers });
}),
map(catalog => catalog.products),
reduce((accData, data) => accData.concat(data), []),
);
}
добавил фабрику в app.module.ts -> Данные загружаются один раз при сборке приложения -> данные не нужно перезагружать каждый раз, когда пользователь изменяет представление
export function catalogProviderFactory(zuoraService: ZuoraService) {
return () => zuoraService.loadCatalog();
}
Компонент OnInit для построения таблицы:
ngOnInit() {
this.zuoraService.catalog$.subscribe(catalog => {
this.dataSource = new MatTableDataSource(catalog);
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
});
Последовательность инициализации Emacs следующая (по крайней мере, для Emacs 22):
Я также предлагаю Вас читающий раздел "Emacs startup strategy" в/usr/share/doc/emacsen-common/debian-emacs-policy.gz для большей определенной информации Ubuntu/Debian. Для нахождения причины нечетного поведения, можно запустить emacs с аргумента - no-site-file и загрузить эти init файлы один за другим, пока Вы не находите файл, который вызывает это поведение.