Czy mogę w jakiś sposób użyć konstrukcji if-then-else (operatora trójargumentowego) w wyrażeniu angularjs, na przykład mam funkcję $ scope.isExists (element), która musi zwrócić wartość bool. Chcę coś takiego
<div ng-repeater="item in items">
<div>{{item.description}}</div>
<div>{{isExists(item) ? 'available' : 'oh no, you don't have it'}}</div>
</div>
Wiem, że mogę użyć funkcji, która zwraca ciąg, interesuje mnie możliwość użycia konstrukcji if-then-else do wyrażenia. Dzięki.
ng-switch
Odpowiedzi:
Wyrażenia kątowe nie obsługują operatora trójskładnikowego przed wersją 1.1.5, ale można go emulować w następujący sposób:
Na przykład zadziałałoby coś takiego:
AKTUALIZACJA: Angular 1.1.5 dodał obsługę operatorów trójskładnikowych:
źródło
<
i>
jak operatory porównania?Możesz używać operatora trójargumentowego od wersji 1.1.5 i nowszych, jak pokazano w tym małym plunkrze (przykład w 1.1.5):
Ze względów historycznych (może plnkr.co z jakiegoś powodu zejdzie w przyszłości), oto główny kod mojego przykładu:
źródło
{{true?true:false}}
Możesz łatwo użyć ng-show, takich jak:
W przypadku bardziej złożonych testów możesz użyć instrukcji ng-switch:
źródło
Można to zrobić w jednej linii.
Użycie w
td
tagu:źródło