javascript - 灰烬数据。如何将模型中未定义的属性发送到服务器?
问题描述
如果我从服务器收到额外的属性(未在模型中定义),我不会将它们存储在 ember 模型中。因此,PUT
否则POST
我不会将它们发送到服务器。
有没有办法将这些额外的属性保留为“兑现数据”并将它们发送回服务器?
解决方案
您可以通过定制您的序列化程序来发送和接收数据来做到这一点,例如,如果您使用 JSONAPIAdapter,您可以使用如下序列化程序:
export default class YouRouteSerializer extends JSONAPISerializer {
//for sending data
serialize(snapshot, options) {
let json = super.serialize(...arguments);
//add a vlue that doesnt exist in the model
json.data.attributes.theNewAttributeName = 'example';
// delete a value
delete json.data.attributes.theAttributeNameToBeDeleted;
return json;
}
//and for receiving (this is what you are looking for)
normalizeResponse(store, primaryModelClass, payload, id, requestType) {
let extratData = payload.data.attributes.yourExtratData;
// here store you extrat data somewhere else , localstorage for example
// thenn
// delete your extra data
delete payload.data.attributes.yourExtratData;
return super.normalizeResponse(...arguments);
}
}
这是自定义序列化程序的参考
推荐阅读
- react-native - React Navigation 5:在 BottomTabNavigator 上实现自定义标题
- r - 在 R 中使用爪子——列出 AWS 工作区
- types - Rust:特征作为返回类型
- python - 在哪个数据库上可以将数据存储在子目录或多个文件夹中
- unity3d - Physics2D.OverlapBox 显示不一致的行为
- python - “源文件找到两次”错误,mypy>=0.780 在 python 中用于 vscode
- javascript - 如何让不和谐的机器人重复用户消息的某个部分
- flask - load_user 在 Flask Login 中多久调用一次?
- mountebank - 在不命中目标应用程序的情况下动态更改 mountebank imposter 中保存的响应
- python - 使用 while 循环继续提示用户输入布尔值,但在满足参数后仍会重复