2017-02-07 2 views
0

내 firebase 데이터베이스에서 데이터를 가져옵니다. 이 t에서 내 HTML을각도 2의 모델로 함수

import { Component, OnInit } from '@angular/core'; 
 
import { DomSanitizer, SafeResourceUrl, SafeUrl, SafeHtml } from '@angular/platform-browser'; 
 
import { ActivatedRoute } from '@angular/router'; 
 
import { RealEstatePhotography } from '../real-estate-photography'; 
 
import { RealEstatePhotographyService } from '../real-estate-photography.service'; 
 

 
@Component({ 
 
    selector: 'app-real-estate-photography-detail', 
 
    templateUrl: './real-estate-photography-detail.component.html', 
 
    styleUrls: ['./real-estate-photography-detail.component.css'], 
 
    providers: [RealEstatePhotographyService], 
 
}) 
 
export class RealEstatePhotographyDetailComponent implements OnInit { 
 

 
photos = this.photo(); 
 
realEstate; 
 

 

 
    constructor(private route: ActivatedRoute, private _realEstatePhotographyService: RealEstatePhotographyService, private sanitizer: DomSanitizer) { } 
 

 
    photo(){ 
 
    var location = "" 
 
    for (var i = 0; i < location.length; i++){ 
 
     Array(i); 
 
    } 
 
    return console.log(Array(i)); 
 

 
    } 
 

 

 
    ngOnInit(){ 
 
    this.route.params.subscribe(params => { 
 
     let title = params['title']; 
 
     let realEstate = this._realEstatePhotographyService.getItem(title).subscribe(realEstate => { 
 
     this.realEstate = realEstate 
 

 
     }); 
 
    }); 
 
    } 
 
}

입니다 :

이 내 service.ts

import { Injectable } from '@angular/core'; 
 
import { Observable } from 'rxjs/Observable'; 
 
import {Http, Response, RequestOptions} from '@angular/http'; 
 
import { RealEstatePhotography } from './real-estate-photography'; 
 
import {AngularFire, FirebaseListObservable} from 'angularfire2'; 
 
import 'rxjs/add/operator/map'; 
 

 
@Injectable() 
 
export class RealEstatePhotographyService { 
 

 
    constructor(private af: AngularFire, private http: Http) { } 
 

 
private realEstate = this.af.database.list('realestate'); 
 

 
    getItems(){ 
 
    return (this.realEstate); 
 
    } 
 

 

 
    getItem(title: RealEstatePhotography) : Observable<any>{ 
 
    return this.realEstate 
 
    .map((list: Array<any>) => { 
 
     let result: RealEstatePhotography = new RealEstatePhotography(); 
 
     if (list){ 
 
     list.forEach(element => { 
 
      if (element.title === title){ 
 
      result = element 
 
      } 
 
     }); 
 
     return result; 
 
     } 
 
    }); 
 
    } 
 
}

이 내 세부 구성 요소입니다 모자 구성 요소.

enter image description here

지금, 내 질문은 :

<p>{{realEstate.folder}}</p>

내가 얻을 데이터입니다. 그 결과를 photo() 함수에있는 "location"변수에 넣어야합니다. 나는 그것을 수행하는 방법을 알아낼 수 없습니다 var에 위치 = this.realEstate.folder 또는 {{realEstate.folder}}

같은

뭔가.

은 내가 당신이 무엇에 완전히 명확하지 않다

https://plnkr.co/edit/a0WKevpXpwvY8x7NG1cb?p=preview

+0

플 런커를 제공 하시겠습니까? –

+0

나는 그 문제를 이해하지 못한다. "나는 그 결과를 '위치 변수'에 넣어야한다. 당신이 달성하고자하는 것을 설명하십시오. – Per

+0

Per, 조금 혼란 스럽습니다. 설명하기가 정말 어려웠습니다. 결과가 페이지에 표시됩니까? 음, 그 데이터를 위치 에 저장해야합니다 : var location = ""https://s3.amazonaws.com/gadaphotos/photos/portfolio/alden_park/ " 하지만 내 firebase에서 해당 데이터를 가져옵니다. {{realEstate.folder}}를 넣고 그 데이터를 얻습니다. 같은 데이터를 가져 오기 위해 var location = {{realEstate.folder}}와 비슷한 것을 넣고 싶습니다. 감사합니다. –

답변

0

을 중포 기지에 연결되어 있지 않다 때문에 물론, 아무것도에 반환하지 않습니다, 여기

가 쿵하는 소리입니다 감사하지만, 하려고하지만, 아마도 이것은 당신을 더 가까이 가게 할 것입니까?

관찰 가능이 데이터를 반환 할 때까지 this.location은 '정의되지 않음'입니다. 템플릿에서 이것을 사용한다면 * ngIf = "location"태그를 사용할 수 있습니다.

export class RealEstatePhotographyDetailComponent implements OnInit { 

    photos = this.photo(); 
    realEstate; 
    private location: any; 

     constructor(private route: ActivatedRoute, private _realEstatePhotographyService: RealEstatePhotographyService, private sanitizer: DomSanitizer) { } 

     photo(){ 

if(this.location) { 


     for (var i = 0; i < this.location.length; i++){ 
      Array(i); 
     } 
     return console.log(Array(i)); 
    } 
     } 


     ngOnInit(){ 
     this.route.params.subscribe(params => { 
      let title = params['title']; 
      let realEstate = this._realEstatePhotographyService.getItem(title).subscribe(realEstate => { 
      this.realEstate = realEstate 
    this.location=realEstate.folder; 
      }); 
     }); 
     } 
    } 
+0

감사합니다. 작동하지 않습니다. 다른 대안을 찾고 있는데, 요소 참조 및 I 마침내 데이터를 얻을 수 있지만 그래도, 그것은 나 자신이 무엇을하지 않습니다 디. 도움 주셔서 감사합니다. –