Angular перезагружает все приложение при переходе назад (location.back)

Я заметил, что location.back () перезагружает все приложение в моем туре по приложению Heroes на StackBlitz.com.

Почему это происходит?

https://stackblitz.com/angular/qvvrbgrmmda?file=src%2Fapp%2Fhero-detail%2Fhero-detail.component.ts

Вы можете объяснить, что означает не работает хорошо?

CornelC 18.05.2018 10:55

Он работает как надо. Что вы от него ожидаете, конкретнее?

Vikas 18.05.2018 10:57
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
3
2
1 247
2

Ответы 2

Добавлять

import {CommonModule, HashLocationStrategy, LocationStrategy} from '@angular/common';

а также

  providers: [
    {
      provide: LocationStrategy,
      useClass:  HashLocationStrategy
    }
  ],

а также

  imports: [
    CommonModule,
  // ...

в вашем app.module.ts

Теперь в вашем URL-адресе есть #, который не позволяет приложению загружать новый экземпляр всего приложения каждый раз, когда вы перемещаетесь в приложении. Прежде чем вы спросите, единственный способ избавиться от # - это рендеринг на стороне сервера, например, с помощью Angular Universal. Вам также потребуется использовать localstorage или бэкэнд-вызов для сохранения состояния приложения, что не является хорошей практикой. Так что просто используйте #. Для получения дополнительной информации см. https://stackoverflow.com/a/37031886/4125622.

Спасибо @Phil, все еще не работает. Когда нажата кнопка «вернуться», страница не переходит на предыдущую страницу. Это официальное приложение от Angular.

Bill 18.05.2018 17:37

Кажется, работает нормально, когда я открываю приложение в полном окне. При запуске вместе с исходным кодом слева location.back() не работает, и приложение не переходит на предыдущую страницу.

Bill 18.05.2018 17:43

У меня это сработало, когда я внес изменения. Как воспроизвести ошибку?

Phil 18.05.2018 20:19

Попробуйте запустить приложение с открытым выводом справа. Когда я запускаю приложение в полноэкранном режиме, все работает нормально, но не тогда, когда окно вывода открыто с правой стороны. Спасибо

Bill 20.05.2018 20:23

Это вызвано функцией предварительного просмотра разделенной панели, предоставляемой StackBlitz; это не проблема с учебником Angular. Если вы используете предварительный просмотр в полноэкранном режиме, этого не произойдет. Поэтому нажмите «Открыть в новом окне», чтобы избежать проблемы.

Другие вопросы по теме