Chcę reprezentować dane modelu jako różne obrazy przy użyciu Angular, ale mając problemy z odnalezieniem "właściwego" sposobu na zrobienie tego. Angular API docs on expressions mówi, że wyrażenia warunkowe są niedozwolone ...Warunkowa zmiana img src na podstawie danych modelu
Upraszczając wiele, dane modelu są pobierane przez AJAX i pokazują stan każdego interfejsu na routerze. Coś jak:
$scope.interfaces = ["UP", "DOWN", "UP", "UP", "UP", "UP", "DOWN"]
Więc w kątowa, możemy wyświetlić stan każdego interfejsu z czymś takim:
<ul>
<li ng-repeat=interface in interfaces>{{interface}}
</ul>
ALE - Zamiast wartości z modelu, chciałbym pokazać odpowiedni obraz. Coś podążającego za tą ogólną ideą.
<ul>
<li ng-repeat=interface in interfaces>
{{if interface=="UP"}}
<img src='green-checkmark.png'>
{{else}}
<img src='big-black-X.png'>
{{/if}}
</ul>
(myślę Ember obsługuje ten typ konstrukcji)
oczywiście mogę zmodyfikować sterownik aby powrócić URL obrazu w oparciu o rzeczywiste dane modelu, ale to wydaje się naruszać oddzielenie modelu i widok, nie?
This SO Posting sugeruje użycie dyrektywy do zmiany źródła bg-img. Ale wracamy do wprowadzania adresów URL w JS, a nie szablonu ...
Wszystkie sugestie doceniane. Dzięki.
proszę wybaczyć żadnych literówek
Dzięki! Sprawdziłem dokładnie w dokumentach, ale są one dość ubogie w wyrażenia. – Danny
To jest ratownik; Dokumenty tak naprawdę nie wspominają, że można używać operatorów binarnych w ng-src –
W najnowszej wersji niestabilnej Angular (jestem na 1.1.4) możesz użyć ng-attr- do ustawienia dowolnego atrybutu w ten sam sposób. –