我在Aurelia应用程序中使用硬编码的类来表示模型。这是一个模型“ PostEdit”:
var _postID = Symbol();
var _title = Symbol();
var _text = Symbol();
export class PostEdit {
constructor(postEdit) {
this[_postID] = postEdit.postID;
this.title = postEdit.title;
this.text= postEdit.text;
}
get postID() { return this[_postID]; }
get title() { return this[_title]; }
set title(val) { this[_title] = val; }
get text() { return this[_text]; }
set text(val) { this[_text] = val; }
}
该对象被操纵后,我需要PUT
和POST
它回服务器。但看起来Aurelia
的HttpClient
正在发送一个空JSON
字符串({}
)。研究一下,Symbols
将ES6类转换为时似乎被忽略了JSON
。
如何将我所有的属性都放入一个JSON
字符串中以提交回服务器?
我假设您正在使用符号来使数据保持私有,但这意味着如果要将数据包含在JSON表示中,则必须经过一些额外的步骤。
这是一个toJSON
在模型上使用以显式导出您关心的属性的示例
export class PostEdit {
// ...
toJSON() {
return {
postID: this.postID,
title: this.title,
text: this.text
};
}
}
或者
export class PostEdit {
// ...
toJSON() {
let {postID, title, text} = this;
return {postID, title, text};
}
}
在JSON.stringify
实例上调用时,它将自动调用toJSON
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句