Точечная запись в 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">

Для этого нет сокращений

Другие вопросы по тегам