2016-10-20 5 views
1

Am kinda new to angular 2, но я ищу способ вернуться к компоненту и найти его, поскольку я его оставил.угловое повторное использование компонентов

Say перемещаться из списка пользователей к детали пользователя, а затем вернуться обратно к списку пользователей

  1. без компонента запрашивающих пользователей с сервера. который отправляет запросы на получение снова. но будет наполнен пользователей, как и прежде, чем я перемещаться из него
  2. если бы я прокручивается это будет точно в точке, прежде чем я покинул

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

+0

Это запланировано на будущее, но в настоящее время не поддерживается. –

ответ

1

Если вам необходимо восстановить компонент после его уничтожения, чтобы точно посмотреть, как это было до его уничтожения, вам нужно сохранить состояние, необходимое для этого. В вашем случае это будет список пользователей и позиция, в которой он находится в данный момент.

Чтобы сохранить состояние в угловом приложении, лучшим вариантом является использование реализации архитектуры ngrx/store в архитектуре Redux. Что вам нужно сделать, так это сохранить в ngrx/store все, что вам нужно для воссоздания компонента.

В вашем жизненном цикле ngOnInit вашего компонента вы можете получить эти данные из магазина и сделать свой компонент таким, каким он был раньше. Это может выглядеть немного.

ngOnInit(): void { 
    this.list$ = this.store.select((state: ApplicationState) => state.list); 
    this.position$ = this.store.select((state: ApplicationState) => state.position); 
} 

Ngrx/магазин возвращает наблюдаемые из магазина, которые вы можете использовать в шаблоне, как это:

<div *ngFor="let element of list$ | async"> 

Для получения дополнительной информации о перевождь reduxjs.org и github.com/ngrx/store

+0

Вы можете дополнительно использовать этот 'https: // github.com/btroncone/ngrx-store-localstorage /' для хранения всех в локальном хранилище. – mxii

+0

Это полезно только в том случае, если вы хотите, чтобы компонент был повторно удален таким же образом после вашего приложения был перезапущен. – KwintenP

+0

Точно. Или сохранить последние полученные значения из бэкэнд или что угодно .. :) Вы можете объявить, какие 'государства' вы хотите сохранить локально. – mxii

Смежные вопросы