При выходе из моего компонента я хотел бы сохранить некоторую информацию о состоянии в объекте-истории-состоянии браузера, чтобы я мог восстановить ее, если вернусь назад. Я бы не хотел использовать службу для хранения этой информации, поскольку я не хочу восстанавливать эти свойства, если я «только что» перейду к своему компоненту - только если я использую кнопку возврата в браузере (или location.back()
).
Я думал о том, чтобы сделать что-то подобное в компоненте, от которого выполняется переход:
ngOnDestroy(): void {
let state: any = this.location.getState();
this.location.replaceState("", undefined, { ...state, selectedTabIdx: this.selIdx });
}
и следующее в том же компоненте:
ngOnInit(): void {
let state = this.location.getState();
if (state.selectedTabIdx !== undefined)
this.selIdx = state.selectedTabIdx;
}
Есть ли способ выполнить sh это? Приведенный выше код не работает (это скорее попытка выдать желаемое за действительное), поскольку состояние, которое я получаю ngOnInit
, не содержит свойства selectedTabIdx
.
Я думаю, что состояние истории -object было бы идеальным местом для хранения этой информации, поскольку это должно быть только для этого шага в истории, и, возможно, вы могли бы иметь один и тот же компонент несколько раз в своей истории и с разными вариантами выбора et c.