Я пишу приложение CRUD с AngularJS + UI Router.Как переключиться на состояние ui-router условно?
Я хочу иметь возможность анализировать текущее местоположение в URL-адресе браузера и определять, должно ли быть использовано состояние ui-router для текущего URL-адреса.
В этих типовых маршрутах существует ли какой-либо способ сделать статьи if
и unless
?
(адрес в адресной строке браузера является http://example.com/notes/1/edit_me
)
$stateProvider.state("root", {
url: "",
unless: $location.matches(/\edit_me/)
})
$stateProvider.state("edit", {
url: "/edit",
if: $location.matches(/\edit_me/)
//
})
UPDATE 1 Поэтому я хочу сделать выше:
Скажите, что я нахожусь в http://example.com/notes
. Маршруты является
$stateProvider.state("root", {
url: "",
})
Однако, с тем же выше состоянием ui.route, когда я нахожусь на URL http://example.com/notes/edit
, то root
теперь "/ примечание/редактирование" вместо "/ нот"
UPDATE 2 @adam, больше объяснений того, что я пытаюсь сделать:
Я попытаюсь объяснить: в вашем коде, для home
состояния (ui.router в) url
является /
(так называемый хэш синтаксис #!/
)
Однако URL в адресной строке браузера выглядит http://example.com/notes/
в одном случае и http://example.com/notes/edit
в другом случае. (Обратите внимание, что URL-адрес не содержит какую-либо #!
части, так как мы просто переходите на страницу)
Теперь home
«s /
будет соответствовать в обеих случаях выше URL. Но поскольку второй URL-адрес заканчивается на notes/edit
, я хочу, чтобы home
для этого URL-адреса должен быть #!/edit
, а не #!/
.
В основном я пытаюсь смешивать серверные оказанные страницы (/notes
и /notes/edit
визуализируются на сервере, а не AngularJS) и на стороне клиента маршрутизации, так что независимо от того, какой URL мы находимся, клиент может выяснить, какие (ui.router) применяется к текущему URL-адресу.
Имеют смысл?
Могу ли я знать exactely в вас случае, почему вы хотите, чтобы проверить URL? Вы хотите, например, установить активный класс css? – adam
Спасибо @adam, я обновил вопрос по причине – Zabba