Как перезагрузить страницу с разбивкой на страницы в Angular 2? [закрыто]

85

Как я могу перезагрузить текущую страницу на Angular 2?

если я на странице 2 (разбиение на страницы) и обновляю страницу, она покажет страницу 1 (загрузка страницы URL), но я хочу, чтобы обновить страницу 2, и она появится на странице 2

FABI1987
источник
Чего вы хотите добиться перезарядкой? Может быть, есть альтернативные способы добиться того же?
Мадху Ранджан
@MadhuRanjan, я хочу сбросить всю модель, но не значение после значения,
FABI1987
у вас может быть все функции выборки модели в общем методе и вызывать его, когда это необходимо.
Мадху Ранджан
2
Обычно функции браузера работают независимо от платформы, если они официально доступны для соответствующей ОС. Сказав, что я предлагаю вам создать новый SO-вопрос о том, как обойти window.location.reload()Chrome в Linux, это было бы идеальным местом для получения вашего ответа, а затем вы можете проверить свой код, чтобы получить версию браузера и логика вокруг, ура !!
Мадху Ранджан
1
FWIW, мой собственный вариант использования для этого - поддержка нескольких языков, поскольку начиная с версии 5.1 Angular по-прежнему не поддерживает ее без отдельного развертывания для каждого языка. У меня есть страница Razor, которая решает, какой пакет сценариев Angular загружать, в зависимости от языковых предпочтений, которые он получает из пользовательской базы данных серверной части ASP.NET Core. Чтобы изменить язык после того, как пользователь изменил свои предпочтения, перезагрузка только Angular SPA не подойдет, мне нужно перезагрузить всю страницу Razor, чтобы она загружала другой Angular SPA.
Дэниел

Ответы:

185

Это должно быть технически достижимо с помощью window.location.reload() :

HTML:

<button (click)="refresh()">Refresh</button>

TS:

refresh(): void {
    window.location.reload();
}

Обновить:

Вот базовый пример StackBlitz, показывающий обновление в действии. Обратите внимание, что URL-адрес в пути «/ hello» сохраняется при window.location.reload()выполнении.

Александр Старосельский
источник
5
мне нужен лучший способ windows.location, который не кросс-платформенный ...
FABI1987
Нет простого кроссплатформенного способа. Вам нужно будет проверить, что это за платформа, а затем выполнить соответствующую перезагрузку для этой платформы.
Джу Бек
Обновление не работает и возвращает пользователя только на первую страницу.
Ace
Это может зависеть от того, как настроена ваша маршрутизация, а также от того, как маршруты SPA загружаются сервером. reload()это стандартный подход браузера к перезагрузке ресурсов с текущего URL.
Александр Старосельский