2016-07-17 29 views
9

İnit'teki verilere müşterilerim tablosundan proje listesine katılmayı isterim.Düzleştirilmiş Verilere Katılma

Modeli şu şekildedir:

  • anahtar

    • projeler

    • adı: string
    • müşteri: CustomerKey
  • müşteriler

    • anahtar
    • adı: string

i angularfire2 kullanarak angular2 bileşeninden bunu nasıl, sen bir örnek var mı? i ngOnInit() metodu bu şimdi benziyor üzerinde FirebaseListObservable benim gelen gözlemlenebilir için this.projects tipini değiştirdik

import { Component, OnInit } from '@angular/core'; 
import { Project } from '../project'; 
import { Router } from '@angular/router'; 
import { FirebaseAuth } from 'angularfire2'; 
import { AngularFire, FirebaseListObservable, FirebaseObjectObservable } from 'angularfire2'; 
import { Observable } from 'rxjs'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-projects', 
    templateUrl: 'projects.component.html', 
    styleUrls: ['projects.component.css'] 
}) 
export class ProjectsComponent implements OnInit { 

    projects: FirebaseListObservable<any[]>; 
    customers: FirebaseListObservable<any[]>; 
    projectName: string; 
    constructor(
    private router: Router, 
    private af: AngularFire 
) { }; 

    ngOnInit() { 
    this.projects = this.af.database.list('projects'); 
    } 

    add(projectName: string) { 
    this.af.database.list('projects') 
     .push({ name: projectName, id: '123' }); 
    this.projectName = null; 
    } 
} 

Güncelleme:

benim denetleyicisi şöyle görünür:

ngOnInit() { 
this.projects = this.af.database.list(`projects`) 
    .map(projects => { 
    projects.map(project => { 
     this.af.database.object('customer/' + project.customer + '/name') 
     .subscribe(customer => { 
      project.customer = customer; 
     }) 
     return project; 
    }) 
    return projects; 
    }); 
} 

Şimdi şablonun içinden müşterinin name özelliğine erişemiyorum of

<li *ngFor="let project of projects | async"> 

project.customer.$value 
+2

Şablonunuzu göstererek veya daha plnkr oluşturarak daha fazla içerik sunabilir misiniz? –

+0

Merhaba David, model açıklamasını sadece gönderiye ekledim. Şablonun içinde özel bir şey yok -> "projelerin projesine | async". Sorunum, ilgili müşteri nasıl edinilir."Projeler" bölümünden veri akışı yapılırken müşteriler tablosundan bir ad verin ve this.project.customer değerini bu değere ayarlayın – Alex

cevap