Моя настройка
- Safari 5.1.2 (Macintosh)
- Sencha Touch 1.1
Выпуск
Процесс
У меня есть модель и магазин. Я обновляю запись, используя метод set(field,value)
, описанный здесь: API - Set . После обновления полей я использую метод save()
, описанный здесь: API - Сохранить .
Результат
Обновления записей в любых списках, которые привязаны к хранилищу, и представляется сохраненным , однако, когда я перезагружаю веб-страницу отображаются старые значения, Таким образом, запись обновляется, магазин видит новые данные, списки, привязанные к магазину, обновляют свое отображение, но фактическое представление данных в локальном хранилище никогда не обновляется. Если вы используете консоль браузера, чтобы найти и осмотреть элемент, например var record = summaryStore.getAt(4)
, вы обнаружите, что атрибут dirty
имеет значение false, даже если вызов save()
не был сделан. Также summaryStore.getUpdatedRecords()
возвращает пустой набор независимо от того, был ли вызван метод save()
.
Дополнительная документация
API - Модели
API - Магазины
API - Прокси
Код
магазин
var summaryStore = new Ext.data.Store({
model: 'EventSummary',
storeId: 'summaryStore',
sortOnLoad: true,
sorters: [
{
property: 'date',
direction: 'DESC'
}
],
proxy: {
type: 'localstorage',
id : 'summary-cache'
}
})
Модель
Ext.regModel('EventSummary', {
fields: [
{name: 'child', type: 'string'},
{name: 'date', type: 'date'},
{name: 'description', type: 'string'},
{name: 'event_id', type: 'int'}
],
proxy: summaryStore.proxy
})
* +1057 * Пример * * одна тысяча пятьдесят восемь
var record = summaryStore.findExact('event_id', 90)
record.date = new Date();
record.description = 'Vitamin K Shot`
record.save()
Оба до и после record.save()
, флаг dirty
имеет значение false. summaryStore.getUpdatedRecords()
возвращает пустой набор и до и после сохранения. Все списки в сводном хранилище отражают внесенные изменения независимо от того, сохранена ли запись.
Дополнительные примечания
Магазин заполняется этим вызовом, который следует за объявлением магазина и модели. summaryStore.load()