5
Zasadniczo mam ten kod w moim szablonu:Wyświetlanie Link warunkowo w angularjs
<tr ng-repeat="entry in tableEntries">
<td ng-switch="entry.url == ''">
<span ng-switch-when="false"><a href="{{entry.url}}">{{entry.school}}</a></span>
<span ng-switch-when="true">{{entry.school}}</span>
</td>
...
</tr>
Jak widać Próbuję wyświetlić klikalny URL kiedy entry.url
nie jest pusty i czysty tekst inaczej . Działa dobrze, ale wygląda dość brzydko. Czy istnieje bardziej eleganckie rozwiązanie?
Innym sposobem mogę myśleć robi to przy użyciu ng-if
:
<td>
<span ng-if="entry.url != ''"><a href="{{entry.url}}">{{entry.school}}</a></span>
<span ng-if="entry.url == ''">{{entry.school}}</span>
</td>
Ale wtedy byłoby powtórzenie tego samego porównania prawie dwukrotnie, co wygląda jeszcze gorzej. Jak byś się do tego zbliżyła?
może to pomóc: http://stackoverflow.com/questions/15810278/if-else-statement-in-angularjs-templates – Blauharley
Użyj '
Odpowiedz
Możesz spróbować.
<div ng-show="!link">hello</div> <div ng-show="!!link"><a href="{{link}}">hello</a></div>
Ale
ngSwitch
których używasz powinny być w porządku.Źródło
2015-01-02 11:00:16
Polecam mającą NG-class = "{ 'className': whenEntryURLisWhatever}" w swoim td, i uczynić go zmieniać style css dostępne, np:
Następnie wystarczy zmienić to, co dzieje się na ng-kliknij w funkcji zdefiniowanej w kodzie javascript.
Byłoby to obniżyć kodu powtórzenia, jak Twój html mógłby teraz być:
Źródło
2015-01-02 11:02:07
Co ng-click? Nie mam pojęcia, co mówisz. Czy sugerujesz ukrywanie nieużywanych elementów w CSS? Jak to jest lepsze od tego, co teraz robię? –
Wcale nie, w twoim css możesz mieć '.className span {text-decoration: podkreślenie; kursor: wskaźnik; } 'i dowolne inne style, które chcesz umieścić w łączu. Następnie wewnątrz swojego zakresu, 'ng-click =" yourFunction() "' –
Mam edytować odpowiedź, aby spróbować wyjaśnić to lepiej. –
Zastosowanie podwójnej negacji, to wrzucony do logiczną zatem
!!entry.url
powrócitrue
czy łańcuch nie jest pusty.Dobrym czytać What is the !! (not not) operator in JavaScript? i Double negation (!!) in javascript - what is the purpose?
Źródło
2015-01-02 11:07:42 Satpal
Można tworzyć niestandardowe dyrektywę, która ukrywa złożoność:
HTML
JS
Źródło
2015-01-02 11:23:21 pixelbits
Powiązane problemy