w kątowym aplikacji, mam listę hiperłączy, które muszą mieć następujące zachowanie:Dokonywanie zachowanie hiperłączy warunkowego w angularjs
gdy pewien warunek jest obecny (np czy dany plik cookie ma wartość x), kliknięcie hiperłącza powinno otworzyć okno modalne;
jeśli ten warunek nie jest spełniony (np. Jeśli plik cookie ma wartość y), hiperłącze powinno działać w zwykły sposób i otworzyć łącze w nowej karcie.
Hiperłącza są formatowane następująco:
<a ng-href="{{article.url}}" target="_blank" ng-click="myFunction()">
{{article.title}}
</a>
jestem zaskoczony, jak wdrożyć takiego zachowania. Jeśli zostawię obie dyrektywy: ng-href
i ngclick
, wtedy ng-href
wstawi adres URL, a każde kliknięcie otworzy stronę w nowej karcie. Jeśli usuniemy dyrektywę ng-href
, jedynym sposobem otwarcia łącza na innej karcie będzie javascript, ale większość przeglądarek temu zapobiega. Nie mogłem wymyślić sposobu na warunkowanie (na przykład pisanie <a ng-href="myCondition === true ? {{article.url}} : '#'">
nie działa).
Czy mógłby Pan zaproponować sposób wdrożenia takiej funkcjonalności w Angular?
Wygląda na to, że musisz zawrzeć lub usunąć atrybut "target". Może zajrzeć tutaj? http://stackoverflow.com/questions/23584201/conditionally-add-target-blank-to-links-with-angular-js –
obsługuje logikę wewnątrz kontrolera czy przekierowywać czy otwierać wyskakujące okna modalne –