Sugeruję, abyś mógł skorzystać z dyrektywy „if statement” w narzędziach Angular UI Utils, aby rozwiązać problem, którą można znaleźć na stronie http://angular-ui.github.io/ . Właśnie użyłem go, aby zrobić dokładnie to samo.
To nie jest testowane, ale możesz zrobić coś takiego:
Kod kontrolera:
$scope.showImage = function () {
if (value1 && value2 && value3 && value4) {
return true;
} else {
return false;
}
};
(lub prostsze)
$scope.showImage = function () {
return value1 && value2 && value3 && value4;
};
HTML w widoku: <img ui-if="showImage()" ng-src="images/{{data.value}}.jpg" />
Lub jeszcze prościej, możesz po prostu użyć właściwości zakresu:
Kod kontrolera:
$scope.showImage = value1 && value2 && value3 && value4;
HTML w widoku: <img ui-if="showImage" ng-src="images/{{data.value}}.jpg" />
W przypadku obrazu zastępczego wystarczy dodać kolejny podobny <img>
znacznik, ale poprzedzić ui-if
parametr !
znakiem wykrzyknika ( ) i albo ustawić w ngSrc ścieżkę do obrazu zastępczego, albo po prostu użyć src
tagu, jak w zwykłym starym języku HTML.
na przykład. <img ui-if="!showImage" src="images/placeholder.jpg" />
Oczywiście wszystkie powyższe przykłady kodu zakładają, że każda z wartości 1, wartość2, wartość3 i wartość4 będzie równa się null
/ false
kiedy każda z 4 informacji jest niekompletna (a zatem także wartością logiczną, true
kiedy są kompletne).
PS. Projekt AngularUI został niedawno podzielony na podprojekty, a dokumentacji ui-if
wydaje się, że obecnie brakuje (prawdopodobnie jest ona gdzieś w pakiecie). Jest jednak dość prosty w użyciu, jak widać, i zarejestrowałem „problem” na Github w projekcie Angular UI, aby wskazać go zespołowi.
AKTUALIZACJA: w projekcie AngularUI brakuje „ui-if”, ponieważ zostało ono zintegrowane z podstawowym kodem AngularJS! Jednak tylko od wersji 1.1.x, która jest obecnie oznaczona jako „niestabilna”.