Моя установка
- Сафари 5.1.2 (Макинтош)
- Сенча Тач 1.1
Проблема
Процесс
У меня есть модель и магазин. Я обновляю запись, используя метод set(field,value)
, описанный здесь: API - Установить. После обновления полей я использую метод save()
, описанный здесь: API — Сохранить.
Результат
Запись обновляется во всех списках, привязанных к хранилищу, и кажется сохраненной, однако, когда я обновляю веб-страницу, отображаются старые значения. . Таким образом, запись обновляется, хранилище видит новые данные, списки, привязанные к хранилищу, обновляют свое отображение, но фактическое представление данных в локальном хранилище никогда не обновляется. Если вы используете консоль браузера для поиска и проверки элемента с чем-то вроде var record = summaryStore.getAt(4)
, вы обнаружите, что атрибут dirty
имеет значение false, даже если вызов save()
не был выполнен. Также summaryStore.getUpdatedRecords()
возвращает пустой набор независимо от того, был ли вызван метод save()
.
Дополнительная документация
Код
Хранить
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
})
Пример
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()