Ich implementiere dynamische Routen in der Echtzeitdatenbank von Firebase basierend auf der ID oder $key
jedes Objekts. Was ich will, ist die ID zu bekommen und ich kann den Weg nicht finden, ich bekomme den Wert undefinied
. Irgendwelche Ideen?
portafolio.component.html
<div class="container my-5">
<h1>Portafolio</h1>
<div class="row">
<div class="col-md-4" *ngFor="let proyecto of proyectos | async">
<div class="card my-3">
<div class="card-body">
<h4 class="card-title">{{ proyecto.titulo }}</h4>
<a class="btn btn-primary" [routerLink]="['/portafolio', proyecto.$key]">Ver detalles</a>
</div>
</div>
</div>
</div>
portafolio.component.ts
import { Component, OnInit } from '@angular/core';
import { AngularFireDatabase, AngularFireList, AngularFireObject } from 'angularfire2/database';
@Component({
selector: 'app-portafolio',
templateUrl: './portafolio.component.html',
styleUrls: ['./portafolio.component.scss']
})
export class PortafolioComponent implements OnInit {
proyectos: any;
constructor(private db: AngularFireDatabase) { }
ngOnInit() {
this.proyectos = this.db.list('proyectos').valueChanges();
}
}
proyecto.ts
export interface Proyecto {
$key?: string;
titulo?: string;
destacado?: string;
descripcion?: string;}
Sie müssen 'snapshotChanges verwenden 'um das zu bekommen Schlüssel. Überprüfen Sie diese [Antwort] (https://stackoverflow.com/questions/47291644/angular-firebase-5-objects-keys-not-being-displayed-so-cant-delete/47291970#47291970) – Hareesh
Ausgezeichnet arbeitete für mich mit 'snapshotChanges()' –