2017-04-18 3 views
1

Ich habe einen Dienst, der die folgende Methode hat:anzeigen, bevor die Daten wiedergegeben wird, ist in ngOninit verfügbar

public GetContactPage() { 
    const url = 'http://localhost:3421/api/case?caseId=' + this.caseId + '&page=/contact'; 

    const headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 
    return this._http.get(url, { headers: headers }) 
     .map(response => { 
      console.log(response.json()); //data is here 
      response = response.json(); 
     }); 
} 

Meine Ansicht ist nur

<div *ngIf="case"> 
<div [innerHtml]="case"></div> 
</div> 

Hier ist ngOnInit für meine Ansicht:

ngOnInit() { 
     return this._caseService.GetContactPage().subscribe(data => { 
     this.case = data; //data is undefined 
    }); 
    } 

In ngOnInit sind die Daten nicht definiert. Ich vermute, dass es daran liegt, dass die Daten vom Server noch nicht zurückgegeben wurden, daher wird meine Ansicht nicht gerendert. Selbst wenn die Daten zurückkommen, werden sie immer noch nicht wiedergegeben. Ich dachte, dass die Ansicht aktualisiert wird, wenn sich das Modell ändert.

Antwort

2
.map(response => { 
     console.log(response.json()); //data is here 
     response = response.json(); 
    }); 

eine Rückkehr fehlt

.map(response => { 
     console.log(response.json()); //data is here 
     return response.json(); 
    }); 

ohne dass subscribe() werden keine Daten empfangen.

+0

Ah, ich fühle mich so dumm ... Du hast mich wieder gerettet. Aus irgendeinem Grund dachte ich, dass die äußere Rückkehr das gehandhabt hat ... Entschuldige, dass mein Javascript saugt. – xaisoft

+0

: D, nichts zu befürchten. 'response => {...}' ist eine Funktion für sich und gibt nur die Rückgabe von dieser Funktion zurück. –

+1

Ja, ich vergesse das resp => {..} ist ein Callback, nur Kurzschrift Syntax? Also kehrt diese Funktion zu der äußeren zurück und die äußere kehrt dann zu ngOnInit zurück ... Richtig? – xaisoft

Verwandte Themen