通过变量扩展模型类

时间:2017-02-16 16:19:17

标签: angularjs angular select

我有一个名为user的模型类:

export class User {
constructor(
    public UserId?: number,
    public Name?: string,
    public Password?: string,
    public IsActive?: boolean,
    public RoleId?: number
   ) {
}

}

对于ng2-select组件,我需要以下属性:text和id。

现在我通过

设置它们
this.userService.getAllUsers().subscribe(
          data => this.users = data,
          err => this.error(err));

没有text和id属性。

是否有一种方法可以在初始化时设置这些属性。

我不想每次都写一个解决方法:

data.forEach(g =>
    {
      g.text = g.Name;
      g.id = g.Id;
    });

this.users = data;

1 个答案:

答案 0 :(得分:0)

由于您似乎没有在上面的代码段中向User类输入数组map,因此您可以在export class UserSelect { constructor( public text: string, public id: number ) { } 中引入另一个类以及处理此作业的位置

getAllUsers() {
  return this.http......
    .map(res => res.json().map(x => new UserSelect(x.Name, x.Id)))
}

并在您的服务中:

this.userService.getAllUsers()
  .subscribe(data => {
     this.users = data;
  })

然后你只需订阅

UserSelect

然后你会得到一个users类型的数组,它具有你需要的适当属性:)当然你可以扩展它并包含你需要的任何属性,记住你不知道你使用的程度{{1}}数组,如果您需要其他属性或原始属性......