angular - 如何在模型中定义嵌套对象? (angular2/ typescript )

标签 angular typescript angular2-http

我正在玩 Angular2,希望有人能就如何实现这一目标提供一些建议;

例如,如果我的模型当前对于员工看起来像这样:

export class Employee {
    constructor(
        public firstName: string,
        public lastName: string,
        public email: string,
        public days: string,
        public hours: string, 
    ){}
}

我想将天数/小时放入他们自己的对象中,这怎么可能实现?

(即喜欢..)

public availability: {
        public days: string,
        public hours: string
},

然后 http get 请求会像下面一样保持不变吗?

getEmployees() {
      return this.http.get('...')
             .map((response: Response) => {
                 const data = response.json().obj;
                 let objs: any[] = [];

                 for(let i = 0; i < data.length; i++) {
                     let employee = new Employee(
                     data[i].firstName,
                     data[i].lastName, 
                     data[i].email, 
                     data[i].availability.days,
                     data[i].availability.hours
                     );

                     objs.push(employee)
                 }
                 return objs
             })
          }

澄清一下,我希望我的 get 请求返回类似的东西;

var obj = {
    firstName: "test",
    lastName: "test",
    email: "test",
    availability: {
      days: "test",
      hours: "test"
    }
  }

希望有人能帮帮忙!我试着环顾四周,但没有发现任何可以提供帮助的东西。

最佳答案

类似这样的东西

export class Employee {
    constructor(
        public firstName: string,
        public lastName: string,
        public email: string,
        public availability: Availability // refer to type Availability  below
    ){}
}

export class Availability {
    constructor(
        public days: string,
        public hours: string
    ){}
}

Http get 请求应该保持不变,然后改变你创建新员工实例的方式

let employee = new Employee(
    data[i].firstName,
    data[i].lastName,
    data[i].email,
    new Availability(
          data[i].availability.days,
          data[i].availability.hours
    )
);

关于angular - 如何在模型中定义嵌套对象? (angular2/ typescript ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40633688/

相关文章:

symfony - angular2/http 获取 201 响应的位置 header

javascript - 如何在使用公共(public)文件夹的 Webhost 上组织 Angular 2 文件?

angular - 如何在 docker 中公开 Angular 应用程序的端口

angular - 使用指令将类添加到宿主元素

Angular/TypeScript - 联合类型访问

javascript - 如何在类中扩展对象定义?

Angular2 - 如何初始化服务内的数据?

javascript - typescript如何在angular2中转换为javascript?

http - 如何使用 angular2 http API 跟踪上传/下载进度

angular - 你如何在 Angular 2 中发布一个 FormData 对象?