Изменение параметров запроса - прокрутка страницы вверху, Angular - PullRequest
0 голосов
/ 19 июня 2019

Я использую этот код, чтобы мое приложение прокручивалось вверх при изменении маршрутов, все работает нормально, но я хотел бы отключить эту опцию при изменении параметров запроса.У меня есть вкладки углового материала, и мои параметры запроса определяют, какую вкладку следует открывать при посещении страницы, но когда я меняю вкладку (также меняю URL), она автоматически прокручивается сверху

Я думаю, что это невозможно сделать простым способом,но, возможно, у вас есть ответ

  imports: [RouterModule.forRoot(routes, {
    scrollPositionRestoration: 'enabled',
    anchorScrolling: 'enabled'
  })]

Я хочу, чтобы при изменении только вкладок приложение не прокручивалось вверху

1 Ответ

0 голосов
/ 19 июня 2019

Глядя на недвижимость scrollPositionRestoration документация, нашел это:

Вы можете реализовать пользовательскую прокрутку поведение восстановления, адаптируя включенное поведение ...

Реализация:

  1. Удалить добавленный код:
{
  scrollPositionRestoration: 'enabled',
  anchorScrolling: 'enabled'
}

Оставляя это как:

imports: [RouterModule.forRoot(routes)]
  1. Добавьте следующий код к app.module.ts:
import { Event, Scroll, Router } from '@angular/router';
import { ViewportScroller } from '@angular/common';

export class AppModule {
  constructor(router: Router, viewportScroller: ViewportScroller) {
    router.events.pipe(
      filter((e: Event): e is Scroll => e instanceof Scroll)
    ).subscribe(e => {
      // here you'll have your own logic, this is just an example.
      if (!router.url.includes('hello')) {
        viewportScroller.scrollToPosition([0, 0]);
      }
    });

  }
}

Вот DEMO для воспроизведения вашей проблемы.

И это DEMO , разрешающее это с помощью этого решения.

Приветствия

...