My *ngIf statement has problems


#1

I am trying to list all data from my firebase database where the logged in facebook user’s email address is the same as the email found in the database:
Képkivágás

The following code is not working, lots of formatting issues, no idea how should i rewrite this

 <ng-container *ngFor="let item of fogasadatok; let i = index">
    <ion-card *ngIf="{{item.useremail}}=={{navParams.data.facebookemail}}">

        <img src="{{item.keplink}}"/>
        <ion-card-content>
          <ion-card-title>
              {{item.datum}} - Ponty
            </ion-card-title>
          <p>

            Egyéb:
          </p>
        </ion-card-content>
      </ion-card>

#2

There’s no need to use interpolation in *ngIf, so remove the brackets.
*ngIf="item.useremail == navParams.data.facebookemail"

You should also use the [] syntax for binding to an image source:
<img [src]="item.keplink"/>

I’d also recommend moving the email logic to the controller, and making it so that fogasadatok only contains the items you actually want to display, which remove the need for the *ngIf.


#3

Thank you, it is working now!
I tried moving the email thing to the constructor like this:

    this.firebasedb.list("/fogasok/").subscribe(_data => {
     if (_data.useremail==this.navParams.get("facebookemail")){

      } else{

      }
      console.log(_data);
      this.fogasadatok = _data;

    })

But i cant really get the useremail from the _data, however i can see it in the object from the log:
Képkivágás


#4

You’d want to write something like this:

    this.firebasedb.list("/fogasok/").subscribe(_data => {
      this.fogasadatok = _data.filter(item => item.useremail == this.navParams.get("facebookemail"));
      console.log(this.fogasadatok);
     })

(Apologies, I don’t know what ‘fogasadatok’ means so I just used ‘item’)