2017-04-18 14 views
1

で使用可能になる前にビューがレンダリングされます。データは、私は次のメソッドを持っているサービスがあるngOninit

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(); 
     }); 
} 

私の見解はここだけ

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

では、私の見解ためngOnInitさ:

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

ngOnInitでは、データは未定義です。私はそれがまだデータがサーバーから返されていないためだと思うので、私のビューはレンダリングされません。データが戻っても、まだレンダリングされません。私は、モデルが変更されたときにビューが更新されると思った。

答えて

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

はそのsubscribe()なしリターン

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

は、任意のデータを受信しません不足しています。

+0

ああ、私はとても馬鹿だと感じています...あなたは私をもう一度救いました。何らかの理由で、私は外部のリターンがそれを処理していると思った...申し訳ありません、私のjavascriptは吸う。 – xaisoft

+0

:D、心配することはありません。 'response => {...}'はそれ自身の関数であり、returnはこの関数からのみ返ります。 –

+1

はい、私はresp => {..}がコールバックであることを忘れています。したがって、この関数は外側のものに戻り、外側のものはngOnInitに戻ります...正しい? – xaisoft

関連する問題