Точечная запись в href, заменяющая весь путь URL
Я работаю над веб-приложением AngularJS, где мне нужно использовать href в шаблоне для запуска дочернего состояния. Длинная история, но href - мой единственный вариант на данный момент (не такие альтернативы, как $state.go() или директивы ui-sref и т. Д.).
В основном я пытаюсь запустить дочернее состояние (модальное окно), которое направляется в мое текущее состояние (родитель). Пример текущего URL, с которого можно перейти по ссылке:
localhost:3000/#/contact/aboutus
Это не единственное возможное родительское состояние в приложении, поэтому мне нужно, чтобы начальная часть пути оставалась динамичной. Допустим, я пытаюсь запустить модальное окно "каталог" с этой страницы, которое соответствует следующему URL:
localhost:3000/#/contact/aboutus/directory
Я ожидаю, что это будет возможно с помощью следующего кода, который у меня есть:
<div class="internal-margin">
<a href="./directory">
<span ng-bind-html="'{{link.label | translate}}'"></span>
</a>
</div>
Обратите внимание на каталог href="./". Я пытаюсь использовать эту точечную запись, чтобы добавить к существующему пути URL. Однако, когда я нажимаю на ссылку на странице, она направляет меня на URL:
localhost:3000/directory
Весь путь заменен, и этот URL-адрес 404. Почему это происходит? Проблема кроется в том, как происходит маршрутизация пользовательского интерфейса, или я что-то упустил?
1 ответ
Ваша интерпретация не учитывает, что вы используете маршрутизацию на основе хеша
./directory
не добавляется к хешу URL и не имеет хеша
При написании href вручную это должно быть:
<a href="#/contact/aboutus/directory">
Для этого нет сокращений