Есть ли способ добавить страницу в историю углового роутера, если там ничего нет? - PullRequest
0 голосов
/ 27 августа 2018

Я использую ionic 4, который использует угловой маршрутизатор. Существует сценарий, в котором пользователь может щелкнуть категорию и перейти на страницу категории. На странице категории отображается кнопка «Назад», которая возвращает пользователя на домашнюю страницу. Однако, если пользователь перезагружает страницу, кнопка «Назад» больше не отображается, так как в истории больше нет страниц для возврата. Я хочу обнаружить этот сценарий и добавить домашнюю страницу в историю, чтобы у пользователя была возможность вернуться назад. Это возможно? Есть указатели?

1 Ответ

0 голосов
/ 27 августа 2018

Учитывая, что angular - это просто фреймворк, построенный на javascript, возможно, есть способ сделать это с помощью angular-ish. В javascript каждый раз, когда браузер заходит на страницу или раздел, я проверяю объект истории, чтобы узнать, есть ли какой-либо элемент в его стеке. как это:

var numberOfEntries = window.history.length;

А если его длина равна нулю, то вы можете использовать новый API pushState для управления историей браузера.

То же самое можно сделать с помощью angular, как сказано в документации:

Angular Router («роутер») заимствует из этой модели. Оно может интерпретировать URL браузера как инструкцию для перехода к сгенерированный клиентом вид. Он может передавать необязательные параметры вместе с компонент поддержки представления, помогающий решить, какой именно контент присутствует.

Документы углового маршрутизатора .

Я знаю, что изучение всех признаков в угловых API немного обременительно, но вам будет лучше знать все эти вещи. Но поскольку я полагаю, что вы спешите, я могу сказать, что самый быстрый способ - использовать атрибут defaultHistory в объекте ionicPage:

На страницы можно переходить по глубоким ссылкам из любой точки приложения, но иногда приложение запускается с URL-адреса, и страница должна имеют ту же историю, как если бы он был перемещен изнутри приложение.

и ...

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

Я сделал нечто подобное в приложении, которое мы разрабатываем на моей нынешней работе, но оно было разработано в ionic 1 и angularjs (я не смог проголосовать, какое из них они собирались использовать), поэтому я не могу действительно скажу вам, если то, что мы сделали, будет работать для вас. Но, читая документацию по последней ионной версии, я думаю, что вы можете сделать это с этим конкретным свойством:

IonicPage

Вы можете попробовать это и сказать мне, как все прошло.

Кстати, мы использовали $ ionicHistory, $ state, $ stateProvider и метод $ state.go (), чтобы манипулировать всем этим, но, как я уже говорил, я был на ionic 1 и angularjs.

Удачи!

...