Angular 2 - 将JSON解析为具有计算属性的类

时间:2017-06-27 11:16:34

标签: json angular typescript rxjs

我尝试转换JSON对象,该对象作为可用的TypeScript类返回,该类也具有计算属性。

映射时,它会正确获取所有返回的值,但是删除/忽略应该在对象上的计算属性,无论我是否有默认值。

期望的结果是ShowPanel默认为true

export class Maintenance {
  Id?: number;
  Name?: string;

  // computed property - doesn't exist on returned data as it's a client 
  // property in an ngFor loop.
  ShowPanel: boolean = true;
}

@Component({
  moduleId: module.id,
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.scss']
})
export class HomeComponent {
   ngOnInit(){
      this.http.get('lookup/getstatusinformation')
               .map(res => <Maintenance[]>res.json())
               .subscribe(res => this.listMaintenance = res);

   }
}

1 个答案:

答案 0 :(得分:1)

当JSON已反序列化时,JSON数据中未提供的任何属性都将在目标对象上设置为其默认值 - 就好像该默认值是响应的一部分一样。

就个人而言,我在创建后迭代对象并重置计算值。