मैं अपने ग्राहकों की तालिका से परियोजना सूची में init पर डेटा में शामिल होना चाहता हूं।फ़्लैटेड डेटा में शामिल होना
मॉडल इस तरह है:
परियोजनाओं
- कुंजी
- नाम: स्ट्रिंग
- ग्राहक: customerKey
ग्राहकों
- कुंजी
- नाम: स्ट्रिंग
मैं कैसे angular2 घटक angularfire2 का उपयोग करने से यह करते हैं, आपको एक उदाहरण है?
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;
}
}
अद्यतन
मैं ngOnInit() विधि अब इस तरह दिखता है पर FirebaseListObservable मेरे से प्रत्यक्ष करने के लिए this.projects के प्रकार को बदल दिया:
मेरी नियंत्रक इस तरह दिखता है:
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;
});
}
अब मैं टेम्पलेट से ग्राहक की संपत्ति संपत्ति का उपयोग नहीं कर सकता
<li *ngFor="let project of projects | async">
project.customer.$value
आप बेहतर अभी तक अपने टेम्पलेट या दिखा रहा है, एक plnkr बना कर अधिक संदर्भ प्रदान कर सकते हैं? –
हाय डेविड, बस पोस्ट में मॉडल विवरण जोड़ा। टेम्पलेट के अंदर कुछ खास नहीं है -> "परियोजनाओं की परियोजना दें | async"। मेरी समस्या यह है कि संबंधित ग्राहक कैसे प्राप्त करें।"प्रोजेक्ट्स" से डेटा स्ट्रीम करते समय ग्राहकों की तालिका से नाम और इस मूल्य को इस.project.customer को सेट करें – Alex