【发布时间】:2019-02-02 22:03:30
【问题描述】:
对 Angular 很陌生,所以这可能是一个简单的问题!
我有一个observable,它返回了objects 的列表。
这些objects 有一个可选的property,我正在尝试根据property 过滤objects 的列表。
getPersonWithHouse(houseID: string): Person[] {
this.myService.getPersons().subscribe(persons => {
this.personsWithHouse = persons.filter(person => {
if (person.house) return person.house.id === houseID;
});
});
return this.personsWithHouse;
}
所以基本上在这个函数中,我将房子作为参数,然后订阅所有人员的列表,并将该房子中的所有人员保存在一个变量中。
我不断收到"cannot read property "ID" of null"
还有一个"not all code paths return a value",但这是因为我放了一个If,没有else,但我不知道我可以放什么else。
我该如何解决这个问题?主要问题是,如果每个person 都有一个house,这会起作用,但是由于house 属性是可选的,一些persons 没有,所以我得到了这个错误
谢谢
【问题讨论】:
-
“但我不知道我还能放什么”在 if 语句之后加上
return false;。 -
"cannot read property "ID" of null" 似乎是其他地方的问题,因为在您的代码中没有“ID”,我的意思是大写。
-
谢谢你的输入,我只是写错了大写!问题已通过以下解决方案解决,返回 false;
标签: angular filter observable