Я предлагаю вам использовать директиву if statement в Angular UI Utils для решения вашей проблемы, которую можно найти на http://angular-ui.github.io/ . Я только что использовал его, чтобы сделать то же самое.
Это не проверено, но вы можете сделать что-то вроде:
Код контроллера:
$scope.showImage = function () {
if (value1 && value2 && value3 && value4) {
return true;
} else {
return false;
}
};
(или проще)
$scope.showImage = function () {
return value1 && value2 && value3 && value4;
};
HTML в представлении: <img ui-if="showImage()" ng-src="images/{{data.value}}.jpg" />
Или, что еще проще, вы можете просто использовать свойство области:
Код контроллера:
$scope.showImage = value1 && value2 && value3 && value4;
HTML в представлении: <img ui-if="showImage" ng-src="images/{{data.value}}.jpg" />
Для изображения-заполнителя просто добавьте еще один аналогичный <img>
тег, но добавьте к ui-if
параметру восклицательный знак ( !
) и либо укажите в ngSrc путь к изображению-заполнителю, либо просто используйте src
тег в соответствии с обычным старым HTML.
например. <img ui-if="!showImage" src="images/placeholder.jpg" />
Очевидно, что все приведенные выше примеры кода предполагают, что каждое из значений value1, value2, value3 и value4 будет приравниваться к null
/, false
когда каждая из ваших 4 частей информации является неполной (и, следовательно, также с логическим значением, true
когда они завершены).
PS. Проект AngularUI недавно был разбит на подпроекты, и документация для него, ui-if
похоже, в настоящее время отсутствует (хотя она, вероятно, находится где-то в пакете). Однако, как вы можете видеть, его довольно просто использовать, и я зарегистрировал проблему Github в проекте пользовательского интерфейса Angular, чтобы указать на нее и команде.
ОБНОВЛЕНИЕ: ui-if отсутствует в проекте AngularUI, потому что он интегрирован в основной код AngularJS! Только начиная с версии 1.1.x, которая в настоящее время помечена как «нестабильная».