Angular 2:如何从嵌套的json对象中获取一些数据?
我想展示一个人的街道。但是我的代码不起作用。我想我做错了。(获得一个人的名字非常有效) json文件:Angular 2:如何从嵌套的json对象中获取一些数据?,json,angular,Json,Angular,我想展示一个人的街道。但是我的代码不起作用。我想我做错了。(获得一个人的名字非常有效) json文件: { "id":1, "name": "someName", "address":{ "street":"someStreet", "number":"10" } } 服务获取json: public getPerson(id:string):Observable<Person> { return this.h
{
"id":1,
"name": "someName",
"address":{
"street":"someStreet",
"number":"10"
}
}
服务获取json:
public getPerson(id:string):Observable<Person> {
return this.http.get(PersonService.PATH + id + '.json')
.map((res:Response) => res.json());
}
地址:
export class Address {
street:string;
number:number;
constructor(street:string, number:number) {
this.street = street;
this.number = number;
}
public static createEmptyAddress():Address {
return new Address("",0);
}
}
我认为它在开始时适用于
person.name
,因为您在PersonDetail
组件中创建了一个空的person。但不适用于地址,因为对应的地址为空:
public static createEmptyPerson():Person{
return new Person(0, '',null);
}
由于HTTP请求是异步的,因此稍后将提供此人的完整数据
我认为有两种方法可以解决您的问题:
- 在模板内容周围使用
:ngIf
template: ` <div *ngIf="person"> <h3>Detail of {{person.name}}</h3> <p>{{person.address.street}}</p> </div> `
- 您的Person类难道没有输入错误吗
adress:Address
我认为应该是这样
address:Address
您确定已设置
个人地址吗?您的意思是什么?我必须在PersonDetail类中设置person.address吗?当您将{{{person.address.street}}
更改为{{person.address}
时会显示什么?这会输出什么吗?没有,div是空的创建person
实例可能有问题。我想我的服务类不会从person那里获取我的地址。我该怎么做?在这种情况下遇到了一个问题,即使数据存在(我用console.log检查),最终起作用的是Evlis操作符object@MohamedB当前位置我也面临同样的问题。你能解决这个问题吗?
template: `
<h3>Detail of {{person?.name}}</h3>
<p>{{person?.address?.street}}</p>
`
adress:Address
address:Address