2017-04-24 74 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