我正在使用一个observable跟踪我的Angular 2应用程序中的一系列记录 .
因为这个可观察的结果存储在“记录”中,所以我使用“记录”迭代并使用* ngFor =“记录记录”打印到我的视图 . 这一切都按预期工作 .
但是,我想弄清楚为什么如果我有一个单独的函数,控制台记录记录数组的长度,我得到一个“0”返回 .
现在我正在Angular的ngOnInit生命周期钩子中做所有这些 . 所以它看起来像这样:
ngOnInit() {
this.clientService.getAllClients()
.subscribe(resRecordsData => this.records = resRecordsData,
responseRecordsError => this.errorMsg = responseRecordsError);
this.isActive();
}
在OnInit下面,我正在为“isActive”设置我的方法,如下所示:
isActive() {
console.log('The total number of active records is ' + this.records.length);
}
我猜测问题是在OnInit期间console.log时“记录”不可用 . 一旦“记录”被返回,我可以做些什么来获得数组的实际长度?
1 回答
如果要访问
.subscribe()
的success参数中的数据,仍然可以使用匿名函数,只需要修改它的编写方式:添加花括号允许多行匿名方法 .