angular - ERROR Cannot read property 'name' of undefined using .subscribe
问题描述
I'm just getting this error -
ERROR TypeError: Cannot read property 'name' of undefined
all the time!
This is my code from getclients.service.ts:
import { Injectable } from '@angular/core';
import {AngularFireDatabase, AngularFireList} from 'angularfire2/database';
import * as _ from 'lodash';
@Injectable({
providedIn: 'root'
})
export class GetclientsService {
getclientList: AngularFireList<any>;
array= [];
constructor(private firebase: AngularFireDatabase) {
this.getclientList=this.firebase.list('clients');
this.getclientList.snapshotChanges().subscribe(list=>{
this.array=list.map(item=>{
return{
$key: item.key,
...item.payload.val()
};
});
});
}
getClientName($key){
if ($key=="0")
return "";
else{
return _.find(this.array, (obj)=>{return obj.$key==$key;})['name'];
}
}
}
And this is my employeelist.component.ts:
this.service.getEmployees().subscribe(
list=>{
let array = list.map(item=>{
let maintainerName=this.maintainerService.getMaintainerName(item.payload.val()['maintainer']);
let clientName=this.getclientsService.getClientName(item.payload.val()['client']);
return{
$key: item.key,
maintainerName,
clientName,
...item.payload.val()
};
});
this.listData= new MatTableDataSource(array);
this.listData.sort=this.sort;
this.listData.paginator=this.paginator;
this.listData.filterPredicate=(data, filter)=>{
return this.displayColumns.some(ele=>{
return ele != 'actions' && data[ele].toLowerCase().indexOf(filter) != -1;
});
}
}
I'm tryinig to get maintainers list from firebase in the same way and it works!
解决方案
推荐阅读
- r - 我可以使用列表中引用的名称保存 tmap 文件吗?
- json - Python代码展平嵌套的json以获取多条记录
- firebase - Flutter - 在 Firebase 中存储小部件?
- r - 如何在 R> 中使用双 y 轴将图例添加到 ggplot
- django - Django——复杂的上下文还是复杂的模板?
- spring-boot - 将 Spring Integration Router 与 Spring Cloud Stream 一起使用
- xslt - XSLT 转换不正确
- scala - Spark/Scala 近似分组
- c# - 转换列表
到 IEnumerable 在 C# 中 - azure - 在 Azure 容器实例中使用不同的协议配置相同的端口