获取Observable的长度

时间:2017-08-03 17:09:02

标签: angular rxjs

export class AppComponent { 

  posts: any[];
  requestStream: any;

    constructor(http: Http){  
       http.get('https://api.github.com/users')
         .subscribe(  
         response => { this.posts = response.json(); });  
    }  
}

<div *ngFor="let post of posts">
{{ post.login }}
</div>
{{ posts.length }}

视图显示一切正常 - 每个帖子的登录和帖子的长度(30),但控制台出错:

  

无法读取属性&#39;长度&#39;未定义的

另一个问题是,url(https://api.github.com/users)实际上包含的记录多于30(46)。那么为什么我只获得30条记录?

1 个答案:

答案 0 :(得分:3)

错误发生在http获取数据之前,您的帖子值未定义。要解决此问题,您需要在声明时初始化帖子。

posts = [];

或在您的模板中,您可以使用

{{ posts?.length }}