Angular - данные не остаются при перезагрузке страницы

Я немного новичок в angular и кое-что не понимаю. Я надеюсь, ты сможешь мне помочь.

Я создаю приложение с Angular и Firebase, которое включает страницу регистрации. Когда я отправляю форму регистрации, все идет хорошо, и данные отправляются в Firebase: Данные, хранящиеся в Firebase

Затем приложение переходит на страницу со списком пользователей. Новый пользователь находится там, как и планировалось.

Дело в том, что когда я перезагружаю список, он пуст, но данные все еще находятся в Firebase.

Вот код для компонента списка пользователей (того, который отображает пользователей):

export class UserListComponent implements OnInit, OnDestroy {
 
  users: User[];
  userSubscription: Subscription;
 
  constructor(private userService: UserService) { }
 
  ngOnInit() {
    this.userSubscription = this.userService.userSubject.subscribe(
      (users: User[]) => {
        this.users = users;
      }
    );
    this.userService.emitUsers();
  }
 
  ngOnDestroy() {
    this.userSubscription.unsubscribe();
  }
 
}

А вот код для userService (тот, который получает данные из Firebase):

@Injectable()
export class UserService {
  private users: User[] = [
      new User('admin', 'admin', '[email protected]')
  ];
  userSubject = new Subject<User[]>();
 
  emitUsers() {
    this.userSubject.next(this.users.slice());
  }
 
  addUser(user: User) {
    this.users.push(user);
    this.emitUsers();
  }
 
  saveUsersToServer() {
    this.httpClient
      .put('https://TEST.firebaseio.com/users.json', this.users)
      .subscribe(
        () => {
          console.info('Enregistrement terminé !');
        },
        (error) => {
          console.info('Erreur : ' + error);
        }
       );
  }
 
  getUsersFromServer() {
    this.httpClient
      .get<any[]>('https://TEST.firebaseio.com/users.json')
      .subscribe(
        (response) => {
          this.users = response;
          this.emitUsers();
        },
        (error) => {
          console.info('Erreur ! : ' + error);
        }
      );
  }
 
  constructor(private httpClient: HttpClient) { }
 
}

Импорт не показывал, т.к. бага нет.

Я что-то неправильно понял в основах Angular? Потеря данных при перезагрузке страницы - это нормально?

Заранее спасибо, ребята.

Оливье, на будущее, скрой свой URL. Я могу получить информацию обо всех ваших пользователях. [{"email": "[email protected]", "login": "admin", "pas‌ sword": "admin"}, {"em‌ ail": "[email protected]‌" , "login": "toto", "pa‌ ssword": "toto"}] PS: Используйте angularFire2, это сэкономит вам много времени! npm устанавливает -s angularfire2

Christophe Chenel 04.06.2018 21:46

Спасибо за совет, хотя бы реальный адрес электронной почты.

BOna 04.06.2018 22:02

Почему вы вообще "перезагружаете" страницу?

Chris 04.06.2018 22:09

Чтобы увидеть, что он делает, если это делает пользователь.

BOna 04.06.2018 22:12

Если вы хотите, чтобы данные сохранялись между обновлениями страниц, выберите LocalStorage или sessionStorage.

Vikas 04.06.2018 22:15

Но что, если мне нужно много хранить?

BOna 04.06.2018 22:34
Тестирование функциональных 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
1
6
244
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

And then the app goes to a page that displays the users list.

В этом компоненте на ngOnInit() вызовите свои службы getUsersFromServer() Таким образом, когда кто-нибудь перезагрузит эту страницу, будет вызван getUsersFromServer(), и вы получите список пользователей.

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