2017-04-24 9 views
1

JSONオブジェクトを返していますが、*ngForループで何も描画されていません。角度4のオブジェクトにJSONをバインドできません

コンポーネント:

@Input() users: Observable<IUser>; 

this.users = this.getUserByRole(this.role); 

getUserByRole(role) { 

     return this._searchService.getUsersByRole(role); 
    } 

HTML:

<tr saSmartMenu *ngFor='let data of users | async' (click)="onEditUser.emit(data)"> 
            <td>{{data.ssn }}</td> 
            <td>{{data.userName }}</td> 
            <td>{{data.lastName }}</td> 
            <td>{{data.ofcSymbId }}</td> 
            <td>{{data.role }}</td> 
           </tr> 

search.service:

getUsersByRole(role:string) { 
      return this.http.get(this.url+role) 
       .map(res => res.json().data); 
     } 

私は安らかクライアントとJSONをチェックして、私のオブジェクトが正確にJSON Iのようなものです取得しています。

+0

コンソール内の任意のエラー? –

+0

ねえドリュー!たぶんばかげた質問かもしれませんが、確かにあなたの回答には実際に抽出しようとしている 'data'オブジェクトが含まれていますか? :) – Alex

+0

@ AJT_82はそれを解決した、私は学んでいる。 – Drew1208

答えて

1

。ホット観測対コールドDocumentation

から

コールド観測は に呼び出されたときに購読すなわち、観測可能 シーケンスが唯一のオブザーバーに値をプッシュし始め、加入時に走り始めます。値はまた、加入者間で共有されません。あなたのサービスを呼び出すために

この

コンポーネント

@Input() users: Observable<IUser>; 

getUserByRole(role) { 
    this._searchService.getUsersByRole(role).subscribe(res=> { 
     this.users = res; 
     }); 
    } 

を行うサービス

getUsersByRole(role:string) { 
      return this.http.get(this.url+role) 
       .map(res => res.json()); 
     } 
2

私が間違っている可能性がありますが、私はこのような何か...あなたは結果を得るためにあなたの観察可能に加入する必要があると信じて:あなたは、要求を作るためにあなたの観察可能なために加入する必要があり

this.http.get(this.url+role) 
    .map(res => res.json().data) 
    .subscribe(result => result); // Not sure what you want in your fat arrow function here 
関連する問題