Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Angular从API访问嵌套属性_Angular_Api_Nested_Frontend - Fatal编程技术网

如何使用Angular从API访问嵌套属性

如何使用Angular从API访问嵌套属性,angular,api,nested,frontend,Angular,Api,Nested,Frontend,我使用Angular从API获取数据。我一直在关注youtube视频,但并没有演示如何访问嵌套属性 如何从中访问“地址”属性,如“街道”和“城市” 谢谢 假设您想要访问数组的第一个对象。API响应被放置在响应变量中: const response = data //the data received from the API const address = response[0].address; const street = address.street; const city = addre

我使用Angular从API获取数据。我一直在关注youtube视频,但并没有演示如何访问嵌套属性

如何从中访问“地址”属性,如“街道”和“城市”


谢谢

假设您想要访问数组的第一个对象。API响应被放置在响应变量中:

const response = data //the data received from the API
const address = response[0].address;
const street = address.street;
const city = address.city

假设您想要访问数组的第一个对象。API响应被放置在响应变量中:

const response = data //the data received from the API
const address = response[0].address;
const street = address.street;
const city = address.city

您可以使用以下代码访问它们。然后说
propertiesList
作为响应

...
 const addressList = this.propertiesList.map(prop -> prop.address ? 
                      { 'street' : prop.address.street, 'city' : prop.address.city } : null );
...
您可以通过索引来访问它们

const street = addressList[0].street;
const city = addressList[0].city;

您可以使用以下代码访问它们。然后说
propertiesList
作为响应

...
 const addressList = this.propertiesList.map(prop -> prop.address ? 
                      { 'street' : prop.address.street, 'city' : prop.address.city } : null );
...
您可以通过索引来访问它们

const street = addressList[0].street;
const city = addressList[0].city;

查看API,您的数据结构具有嵌套对象,而您参考的教程仅给出了普通对象的示例

上面的答案还建议了访问对象中嵌套属性的正确方法,但在本例中,我建议您以正确的方式构建对象,以便angular自动正确映射嵌套对象

像这样的

export class Location{
    public lat: string;
    public lng: string;
}
  export class Company{
      public name: string;
      public catchPhrase: string;
      public bs: string;
  }
  
  export class Address{
    public street: string;
    public suite: string;
    public city: string;
    public zipcode: string;
    public geo: Location;
}
export class User{
    public id: number;
    public name: string;
    public username: string;
    public email: string;
    public address: Address;
    public phone: string;
    public website: string;
    public company: Company;
}
这样,当您调用http get服务时,您可以以正确的嵌套格式获取记录,以便以后访问。比如说

this._http.get<User[]>(this.apiUrl);
this.\u http.get(this.apirl);

现在,您可以使用点运算符(.)访问用户对象内的嵌套对象。

看到您的API,您的数据结构具有嵌套对象,而您参考的教程仅给出了普通对象的示例

上面的答案还建议了访问对象中嵌套属性的正确方法,但在本例中,我建议您以正确的方式构建对象,以便angular自动正确映射嵌套对象

像这样的

export class Location{
    public lat: string;
    public lng: string;
}
  export class Company{
      public name: string;
      public catchPhrase: string;
      public bs: string;
  }
  
  export class Address{
    public street: string;
    public suite: string;
    public city: string;
    public zipcode: string;
    public geo: Location;
}
export class User{
    public id: number;
    public name: string;
    public username: string;
    public email: string;
    public address: Address;
    public phone: string;
    public website: string;
    public company: Company;
}
这样,当您调用http get服务时,您可以以正确的嵌套格式获取记录,以便以后访问。比如说

this._http.get<User[]>(this.apiUrl);
this.\u http.get(this.apirl);

现在,您可以使用点运算符(.)访问用户对象中的嵌套对象。

非常感谢!这不是下载了所有的数据吗。有没有一种方法可以使用一个类只获取几个属性?如果你的api返回了所有的数据,那么你什么都做不了,如果你想要更少的数据,你就必须改变api!这不是下载了所有的数据吗。有没有一种方法可以使用一个类只获取几个属性?如果你的api返回了所有的数据,那么你什么都做不了,如果你想要更少的数据,你必须更改api