Angular - indexOf JS не работает в * ngIf - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть следующий HTML код, используя Angular. Мне нужно проверить mimetype файла перед его отображением, указав c display для изображения и pdf.

Я пытаюсь это сделать:

<span *ngFor='let media of tabMedia; let ind = index'>
    <span *ngIf="media['mimetype'].indexOf('image') > -1">
        <div class="col-lg-3 col-md-4 col-6">
            <a (click)="openModal('image_' + ind)" style="cursor: pointer">
                <img [id]="'image_' + ind" class="img-fluid img-thumbnail" [src]="'data:' + media['mimetype'] + ';base64,' + media.file" alt="">
            </a>
        </div>
    </span>
</span>

Но у меня возникает следующая ошибка:

ERROR TypeError: "_v.context.$implicit.mimetype.indexOf is not a function"

Я пробовал также с media['mimetype'].includes('image'), и у меня та же ошибка

Как я могу проверить тип MIME и отобразить разные HTML для каждого MIME-типа?

Спасибо

1 Ответ

0 голосов
/ 17 апреля 2020

сделать так.

<span *ngIf="checkMime()">
    <div class="col-lg-3 col-md-4 col-6">
        <a (click)="openModal('image_' + ind)" style="cursor: pointer">
            <img [id]="'image_' + ind" class="img-fluid img-thumbnail" [src]="'data:' + media['mimetype'] + ';base64,' + media.file" alt="">
        </a>
    </div>
</span>

затем в компоненте

checkMime(){
    return media['mimetype'].indexOf('image') > -1;
}

дайте мне знать, если у вас есть сомнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...