12

mam nawigację konfiguracji następująco, stosując NG-repeat, który działa bardzo dobrzenawigacji witryny za pomocą UI-sref, jak usunąć atrybut UI-sref gdy nie jest dostępny

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

Jednak moje przedmioty nawigacyjne często mają podlinkówki, co oznacza, że ​​link nadrzędny nie jest tak naprawdę linkiem nawigacyjnym, służy tylko do rozwijania i przeglądania subkont. Ale czasami jest to link i nie ma podublicznych do wyświetlenia.

Problem dotyczy tych konkretnych przypadków, gdy nie ma żadnego stanu, muszę usunąć wszystkie ui-sref, ponieważ w ogóle nie powinien istnieć link. Mając to jest rzucanie "Błąd: Nieprawidłowy stan ref" ""

Jak usunąć ui-sref, gdy stan nie jest dostępny?

+0

Pokaż "ng-repeat" i model 'link' w całości. Jak utworzyć hierarchię stanów, którą później powtarzasz? Niezależnie od przypadku, możesz użyć 'ng-if' lub' ng-switch', aby określić, czy wyświetlać link-zapach '' (z 'ui-sref') lub macierzysty-link-flavor. –

+0

Duplikat duplikatu: http://stackoverflow.com/questions/25600071/how-to-achieve-that-ui-s-f-conditionally-executed –

Odpowiedz

10

warunkowo utworzyć atrybut UI-sref

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

Brzmi intuicyjnie, a nawet lepiej, działa! – Mobiletainment

+3

Znalazłeś poniżej błędu, jeśli możesz pomóc? Błąd 'Nie można rozwiązać" false "ze stanu" " – jaym

+0

Błąd: Nieprawidłowy stan ref" ' – Toolkit

16

można użyć {{}} z ekspresją

Markup

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

. stworzy własną drogę państwową, więc podczas kliknięcia na nią , nie przekieruje żadnego miejsca.

Mam nadzieję, że to pomoże, dzięki.

+0

Co masz na myśli: "utworzy własną trasę, więc klikając ją, przekieruje Cię tam gdzie nie.", Pojawia się błąd w kliknięciu łącza - "Nie mogę przejść do stanu abstrakcyjnego". " – Pumych

+0

To wyjątek (lub możesz również nazwać to zasadą), według projektu nie możesz przejść do abstrakcyjnego stanu –

+0

Czy możesz wyjaśnić? Jak "wyłączyć" link bez błędu? Obecnie niedozwolonym rozwiązaniem, które mam, jest wywołanie funkcji za pomocą e.preventDefault() – Pumych

Powiązane problemy