如何让JSData更新保存到localStorage的修改后的对象?
下面的代码将一个Tree对象和两个苹果保存在一个容器对象中。现在,按照in the docs here的说法,更新该容器并将其保存“混合到现有实例中”。
问:如何防止这种混合行为,使对象在保存后只包含一个苹果?
var adapter = new DSLocalStorageAdapter();
var store = new JSData.DS();
store.registerAdapter('localstorage', adapter, { default: true });
var Tree = store.defineResource('tree');
Tree.create({
id: 1,
apples: {1: 'one', 2: 'two'}
}).then(function(tree){
tree.apples = {1: 'one'}
tree.DSSave().then(function(tree){
console.log(tree.apples) //
})
});发布于 2016-08-24 02:25:55
您正在寻找缺省为"merge"的onConflict选项。
这应该可以做到:
tree.apples = {1: 'one', 2: null};
tree.DSSave({ onConflict: 'replace' })
.then(function (tree){
console.log(tree.apples);
});2.x:http://www.js-data.io/v2.9/docs/dsdefaults#onconflict
3.x:http://api.js-data.io/js-data/latest/Collection.html#onConflict
https://stackoverflow.com/questions/39100529
复制相似问题