DeepStateRedirect в угловом ui-router 1 - как сбросить глубокое состояние? - PullRequest
0 голосов
/ 18 мая 2018

Я использую angularJS и перехожу на ui-router v1.Я пытаюсь заставить работать перенаправления глубокого состояния, как это было в предыдущей версии ui-router.

Я успешно реализовал DSRPlugin в моих конфигурационных модулях, и перенаправления глубокого состояния запускаются и работают какожидается.Однако я не могу сбросить глубокое состояние.Мне нужно иметь возможность сбрасывать глубокое состояние одним нажатием кнопки, что означает логику внутри моего компонента.Ранее я мог внедрить $ deepStateRedirect в мои контроллеры и просто вызвать $ deepStateRedirect.reset ({}), но я больше не могу вводить $ deepStateRedirect.Как я могу получить доступ к методу сброса в ui-router v 1?

Я также заметил, что при использовании DSR в качестве объекта конфигурации вы можете указать функцию, чтобы определить, происходит ли перенаправление.В качестве альтернативы я мог бы использовать это, чтобы определить, делать ли перенаправление или нет, но документация отсутствует.Это показывает, что я должен вернуть истинное значение, чтобы сделать редирект или значение фальси, чтобы предотвратить перенаправление.В тестировании возврат true или false вызывает только ошибку перехода: «i.state не является функцией».

Я не использую процесс сборки, только простой скрипт включает.У кого-нибудь есть какие-либо идеи о том, как заставить это работать любым из вышеперечисленных методов?

1 Ответ

0 голосов
/ 18 мая 2018

Возможно, это не лучший способ сброса настроек, но я нашел решение после выхода из системы различных объектов ui-router.

Внутри вашего контроллера вы должны внедрить объект $ uiRouter.Затем вы можете установить переменную в $ uiRouter._plugins ["deep-state-redirect"].Сброс () и другие методы доступны в прототипе плагина.

Затем вы можете использовать этот объект и вызывать эти методы аналогично тому, как он работал в предыдущей версии, при внедрении $ deepStateRedirect.

var $deepStateRedirect = $uiRouter._plugins["deep-state-redirect"];
$deepStateRedirect.reset({});
...