Мне нужно отобразить модальное окно (в основном просто скрытый div, который будет загружен скомпилированным шаблоном) в моем приложении Angular. Проблема в том, что мне нужен URL-адрес для изменения, когда модаль открывается, чтобы пользователи могли скопировать ссылку и перейти непосредственно в модальное окно, а также использовать кнопку "Назад", чтобы закрыть модальное окно и вернуться на предыдущую страницу. Это похоже на то, как Pinterest обрабатывает модальные окна, когда вы нажимаете на вывод.
До сих пор я создал директиву, которая загружает шаблон, компилирует его с помощью компиляции $, внедряет область $scope и затем отображает скомпилированный шаблон. Это прекрасно работает.
Проблема заключается в том, как только я использую $location для изменения пути, контроллер маршрута запускает и загружает шаблон в ng-view.
Я подумал о двух способах преодоления этого, но не смог реализовать:
-
Как-то предотвратить запуск контроллера маршрута, когда я изменяю URL с помощью $location. Я добавил слушателя в $routeChangeStart, чтобы предотвратить дефолт, но это не работает.
-
Как-то добавить на страницу еще один обработчик вида (в основном на странице есть 2 имени ng-view) и каждый из них может обрабатывать разные маршруты. Не могу видеть, что Angular поддерживает это в данный момент.
URL должен иметь формат /item/item _id, а не /item? item_id = 12345.
Любая помощь будет оценена.