我正在开发一款基于 Javascript 的 Web 应用程序(SPA),具有 RESTful API 后端。在客户端数据上下文中,我想将对象添加到我的模型图中,然后一次性将整个图形发送到服务器。
问题在于,如果我使用这种方法,我将无法通过id在客户端删除新添加但尚未保存的项目,因为所有id都为零!
有什么建议可以解决这个问题,或者我需要完全不同的方法吗?
假设以下示例:
我的模型中有一个 Person
对象,它本身具有一个数组属性,例如 PhoneNumbers
。现在,我从 API 中加载一个用于编辑的 Person
并将其映射到我的模型中。假设我想向我的 PhoneNumbers
添加一些电话号码对象。为此,我将每个数字,例如 {"id": 0, "number": 6536652226}
,添加到我的客户端模型,并在用户单击保存时将整个图形发送到服务器。在服务器上,我使用自增的 ID 将 ID 为零的对象(新对象)添加到数据库中。
我正在根据教程进行项目开发。他们像这样将对象添加到上下文中:
var items = {},
// returns the model item produced by merging json obj into context
mapJsonToContext = function (json) {
var id = mapper.getJsonId(json);
var existingItem = items[id];
items[id] = mapper.fromDto(json, existingItem); //returns the mapped obj
return items[id];
},
add = function (newObj) {
items[newObj.id()] = newObj;
}
问题在于,如果我使用这种方法,我将无法通过id在客户端删除新添加但尚未保存的项目,因为所有id都为零!
有什么建议可以解决这个问题,或者我需要完全不同的方法吗?