我尝试转换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);
}
}
答案 0 :(得分:1)
当JSON已反序列化时,JSON数据中未提供的任何属性都将在目标对象上设置为其默认值 - 就好像该默认值是响应的一部分一样。
就个人而言,我在创建后迭代对象并重置计算值。