app.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import {
  2. ApplicationConfig,
  3. ErrorHandler,
  4. provideBrowserGlobalErrorListeners,
  5. provideZoneChangeDetection,
  6. } from '@angular/core';
  7. import { provideHttpClient } from '@angular/common/http';
  8. import { provideRouter, withInMemoryScrolling } from '@angular/router';
  9. import { provideMarkdown } from 'ngx-markdown';
  10. import { provideFmodeApi } from './core/api/api.provider';
  11. import { AppErrorHandler } from './core/app-error-handler';
  12. import { routes } from './app.routes';
  13. export const appConfig: ApplicationConfig = {
  14. providers: [
  15. provideBrowserGlobalErrorListeners(),
  16. /*
  17. * 全局错误处理:只静音「预期内的请求取消」(Matrix SDK 的 AbortError),
  18. * 其余错误照常打印。见 `core/app-error-handler.ts`。
  19. */
  20. { provide: ErrorHandler, useClass: AppErrorHandler },
  21. provideZoneChangeDetection({ eventCoalescing: true }),
  22. provideRouter(
  23. routes,
  24. // 滚动行为:前进回顶部,后退/前进保留位置。
  25. // 移动端「列表 ↔ 详情」返回保持位置由页面自身配合(AC-05.2)。
  26. withInMemoryScrolling({ scrollPositionRestoration: 'enabled', anchorScrolling: 'disabled' }),
  27. ),
  28. // 🔴 数据源单开关:MockApi(演示) / ParseApi(真实)
  29. provideFmodeApi(),
  30. // markdown 渲染(消息正文 / 附件预览)—— ngx-markdown 需要 HttpClient
  31. provideHttpClient(),
  32. provideMarkdown(),
  33. ],
  34. };