Как заставить JSData сохранять свойство экземпляра в localStorage

Как я могу заставить JSData обновлять измененный объект, который сохраняется в localStorage?

Приведенный ниже код сохраняет объект Tree с двумя яблоками, сохраненными в нем, в объекте-контейнере. Теперь обновите этот контейнер и сохраните его, "смешивая с существующими экземплярами", как указано в документации здесь.

В: Как я могу предотвратить такое поведение миксинов, чтобы объект сохранял только одно яблоко после сохранения?

Plunker

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) // 
  })
});

1 ответ

Вы ищете onConflict опция, которая по умолчанию "merge",

Это должно сделать это:

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

3.x: http://api.js-data.io/js-data/latest/Collection.html

Другие вопросы по тегам