2017-04-24 33 views
1

我正在返回JSON對象,但*ngFor循環未呈現任何內容。無法將JSON綁定到角度4對象

組件:

@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我我正在得到。

+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