* ngIf, только если оно соответствует значению в массиве в firestore - PullRequest
0 голосов
/ 21 апреля 2019

Я работаю в Firestore, я пытаюсь показать изображение, только если uid пользователя совпадает со значением массива. Может кто-нибудь дать мне представление, как это сделать?

Пока я смог это сделать, но со строкой, и она работает хорошо: enter image description here

<div *ngIf="auth.user | async as user">
  <img *ngIf="evento.favoritos2 === user.uid " src="assets/icons/Icon_bookmark02.svg" alt="iconFavorito">
</div>

Но в случае с массивом, как бы это было? enter image description here

Я попробовал это, но это не сработало:

<div *ngIf="auth.user | async as user">
  <img *ngIf="evento.indexOf(favoritos) === user.uid " src="assets/icons/Icon_bookmark02.svg" alt="iconFavorito">
</div>

Ответы [ 2 ]

0 голосов
/ 21 апреля 2019

Метод indexOf () ищет в массиве указанный элемент и возвращает его позицию, а не True / False

favouritos - это массив, и вы проверяете индекс на evento

  <img *ngIf="evento.favoritos.indexOf(user.uid) !== -1" src="assets/icons/Icon_bookmark02.svg" alt="iconFavorito">

0 голосов
/ 21 апреля 2019

Если вы хотите проверить, содержит ли массив favitos идентификатор пользователя, вы можете использовать метод find.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

Но вы не можете использовать методы массива внутри директивы *ngIf.

Вы должны подписаться на свою авторизацию, наблюдаемую в вашем файле component.ts.

Вот пример:

component.ts

ngOnInit() {
    this.auth.subscribe( user => {
        this.user = user;
        this.showImage = this.evento.favoritos.find(element => element === user.uid);
    }
}

component.html

div *ngIf="user">
<img *ngIf="showImage" src="assets/icons/Icon_bookmark02.svg" alt="iconFavorito">
</div>

Я не знаю вашего точного кода, поэтому вам, возможно, придется немного изменить код. И не забудьте отписаться внутри ngOnDestroy.

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