【发布时间】:2018-04-28 11:53:45
【问题描述】:
我有一个问题,我似乎找不到解决方案,或者我的搜索有误。问题如下:
背景
我有一个 BookingEvent 类,定义如下:
export class BookingEvent {
title: string;
private _startDate: Date;
set startDate(value: Date) {
let valueMoment = moment(value);
if (valueMoment.isValid()) this._startDate = valueMoment.toDate();
}
get startDate(): Date {
return this._startDate;
}
private _endDate: Date;
set endDate(value: Date) {
let valueMoment = moment(value);
if (valueMoment.isValid()) this._endDate = valueMoment.toDate();
}
}
除了上述之外,我还有一个带有模板的表单组件,它可以通过两种方式绑定到属性。
问题
当我将表单数据保存到远程 api 时,我意识到 json 生成的映射我的 startDate & endDate 绑定属性分别为 _startDate 和 _endDate,如下所示:
{
"title": "My awesome event",
"_startDate": "2018-04-26T20:50:00.000Z",
"_endDate": "2018-04-27T19:50:00.000Z"
}
问题
为什么原生 json 映射器使用私有属性名称而不是公共属性名称?如何确保使用公共属性名称?
【问题讨论】:
-
JSON 不实例化类。您不应该使用类来表示您的传输对象
标签: json angular typescript