Я реализую компонент файлового браузера, используя Nativescript + Angular.
NativeScript 5.2.0-2019-01-18-12822
nativescript-angular 7.1.0
У меня есть маршрут с параметром пути и компонентом представления каталога, который вызывается рекурсивно, когда пользователь нажимает на иерархию файловой системы.
запись маршрута:
{ path: "debugfilebrowserdir/:path", component: DebugFileBrowserPageComponent }
Я использую наблюдаемый шаблон для подписки на paramMap в ActivatedRoute в ngOnInit ():
this.route.paramMap.subscribe( ( params ) => {
let path = params.get( 'path' );
// update the model with the entries from path
});
Это работает как чемпион,Я могу просматривать записи каталога, и представление обновляется.
У меня есть кнопка «Назад» на панели действий:
<ActionBar class="action-bar" title="Files">
<NavigationButton android.systemIcon="ic_menu_back" text="Back" (tap)="goBack()"></NavigationButton>
</ActionBar>
После того, как пользователь щелкнул вниз в подкаталог, я хотел бы отобразить родительский каталог, когда кто-то нажимает кнопку назад на панели действий.Я могу сделать это с помощью отдельной кнопки, но это выглядит просто сбивающим с толку.
Проблема в том, что когда нажимаю кнопку «Назад», независимо от того, насколько глубоко я в дереве каталогов, она возвращает меня к корневому компоненту, а непредыдущий вид.Я предполагаю, что это потому, что мой компонент просмотра каталога используется повторно каждый раз, когда отображается подкаталог.(Проверено, что ngOnInit больше не вызывается.)
Я думал, что должен быть какой-то способ динамически помещать запись в стек истории или вызывать многократное создание компонента представления моего каталога, но пока яничего не нашел.
Существует ли способ манипулирования стеком истории навигации, чтобы при нажатии кнопки «Назад» я мог повторно отображать один и тот же компонент с различными параметрами (т.е. в этом случае показывать один и тот же компонент с путемродительский каталог)?
Связанный вопрос без ответа У меня проблема с «историей назад» при переходе на ту же страницу