2016-11-03 3 views
1

У меня есть следующие ngFor. Если изображение отсутствует (Http 404), я просто хочу скрыть элемент img. Проблема в том, что переменная imgMissing является глобальной для всех элементов. Мы могли бы легко решить это с помощью логики в файле компонента или путем указания отдельного файла компонента для части элемента.ngДля использования индекса для определения элементов

Но можно ли разрешить это только внутри шаблона, например. используя индекс для идентификации недостающего элемента изображения?

<div *ngFor="let item of items; let i = index"> 
    <img *ngIf="!imgMissing" [src]="item.imgSrc" (error)="imgMissing=true;" /> 
</div> 
+1

Что определено ли или нет отсутствует изображение? В противном случае, если бы вы знали отсутствующий индекс, '* ngIf =" i! = KnownIndex "или если imgSrc пуст (отсутствует)' * ngIf = "item.imgSrc" ' – silentsod

+0

@silentsod благодарит за ваш ответ. Я забыл упомянуть, что я не знаю недостающий индекс, я получаю ошибку 404 при попытке получить изображение. – doorman

ответ

3

Просто используйте собственный обработчик onerror, чтобы установить стиль.

<div *ngFor="let item of items; let i = index"> 
 
    <img [src]="item.imgSrc" onerror="this.style.display='none'" /> 
 
</div>

Смежные вопросы