Навигация по сайту с помощью ui-sref, как удалить атрибут ui-sref, когда он недоступен

Я настраиваю навигацию следующим образом, используя ng-repeat, который работает очень хорошо

<a ui-sref="{{link.Route}}" ng-click="clickLink(link)">
    <span class="title"> {{link.Text}} </span><span class="selected"></span>
</a>

Однако мои навигационные элементы часто имеют подъязычные объекты, что означает, что родительская ссылка на самом деле не является ссылкой на навигацию, она просто используется для расширения и просмотра подъязыков. Но когда-то это ссылка, и у нее нет субблинков для отображения.

Проблема для тех конкретных случаев, когда нет доступных состояний, мне нужно удалить ui-sref все вместе, потому что вообще не должно быть ссылки. Имея его, вы бросаете "Ошибка: неверное состояние ref" '

Как удалить ui-sref, когда состояние недоступно?

Ответ 1

Вы можете использовать {{}} с выражением

Разметка

ui-sref="{{expression ? '.childState' : '.'}}"

. создаст собственный маршрут состояния, поэтому, щелкнув по нему, он не перенаправит где-нибудь.

Надеюсь, это поможет вам, спасибо.

Ответ 2

Условно создайте атрибут ui-sref

<a ng-attr-ui-sref="{{ link.Route ? link.Route : false }}">
    ...
</a>