Как вы можете видеть. Если бы я обновил FIELD, я получил бы ALERT, который отобразит мне TESTVALUEform мою модель. В первый раз, когда он будет пуст, мой Store будет пустым. Но второй раз он должен показать мне РОДЖЕР. но это не так. У моего магазина никогда не было синхронизации.Хранение данных локально - не работает?
Может ли кто-нибудь мне помочь?
Вот мой код:
контроллер, который получают обновленные данные (проверено, он действительно получает событие)
Ext.define('Prototype.controller.MyController', {
extend: 'Ext.app.Controller',
config: {
control: {
"textfield": {
change: 'onTextfieldChange'
}
}
},
onTextfieldChange: function(textfield, newValue, oldValue, eOpts) {
Ext.getStore('localdb').load();
var test = Ext.getStore('localdb').last().get('testValue');
console.log(test);
Ext.getStore('localdb').add({testvalue: 'ROGER'});
Ext.getStore('localdb').sync();
}
});
Модель:
Ext.define('Prototype.model.LocalData', {
extend: 'Ext.data.Model',
config: {
identifier: {
type: 'uuid'
},
proxy: {
type: 'localstorage',
id: 'test1'
},
fields: [
{
name: 'testValue'
}
]
}
});
Магазин:
Ext.define('Prototype.store.LocalStore', {
extend: 'Ext.data.Store',
requires: [
'Prototype.model.LocalData'
],
config: {
model: 'Prototype.model.LocalData',
storeId: 'localdb',
syncRemovedRecords: false,
proxy: {
type: 'localstorage',
id: 'test1'
}
}
});
Да, вам нужно создать объект с моделью. Вы можете синхронизировать данные только непосредственно в магазине. –