Попытка передать значения в локальное хранилище с помощью Sencha Touch 2.1.1

Кто-нибудь может сказать мне, почему этот фрагмент кода не создает запись в локальном хранилище?

    myLocalStore.load();

    var now = new Date();
    var cardId = (now.getTime()).toString() + (this.getRandomInt(0, 100)).toString();

    var entry1 = { id: cardId, dateCreated: now, title: 'The Title', narrative: 'the Text' };
    var newRecord = new PinYin.model.Default(entry1);
    myLocalStore.add(newRecord);

    myLocalStore.sync();

    console.log(entry1);

Выходы консоли

Object{id: "136575772251069", dateCreated: Fri Apr 12 2013 17:08:42 GMT+0800 (Taipei Standard Time), title: "The Title", narrative: "the Text"}

это правильный формат, поэтому я не уверен, что я делаю неправильно...

если я заменю myLocalStore.add(entry1); с myLocalStore.add('значение');

тогда я получу следующее, введенное в локальное хранилище

{"id":"ext-record-1","dateCreated":null,"title":null,"narrative":null}


person mwhluu    schedule 12.04.2013    source источник


Ответы (2)


Я столкнулся с той же ситуацией и нашел такое решение,

Прежде всего, если вы установили поле «idProperty» модели, удалите его.

После этого используйте следующее соглашение.

myOfflineStore.add([{ listItemId: record.data.listItemId, 
                      listItemTitle: record.data.listItemTitle, 
                      listItemImageCode: record.data.listItemImageCode,     
                      listItemNewPostCount: record.data.listItemNewPostCount }]);

Использование [, ] является ключевым моментом.

РЕДАКТИРОВАТЬ: Если вы хотите использовать idProperty, вам нужно установить вновь добавленную запись как «фантомную» с настройкой фантом = true

person handet87    schedule 16.04.2013

Попробуйте так...

      var airline_name = res[i].AirLineName; 
localStorage.setItem("AirlineCode3two",record.get('AirlineCode32'));

        var stored_locally2 = {'ID2': i,'AirLineName2': res[i].AirLineName,};

             //Adding our array to LocalStore(localStorage)
                         var localstore2 = Ext.getStore('TwowayStorage');

                         var twowayc1=localstore2.getCount();
                         localstore2.add(stored_locally2);
                         localstore2.sync();
                         localstore2.load();
person Gayathri Mohan    schedule 20.04.2013