2009-09-24 3 views
0

У меня есть сетка, встроенная в ContentPane, которая находится в tabContainer. При загрузке itemfilewritestore IE7 выдает сообщение об ошибке.Dojo ItemFileWriteStore проблема с IE7

Код:

вар theData = {идентифицирует: идентификатор, предметы []}; var theStore = new dojo.data.ItemFileWriteStore ({data: theData});

console.debug (theStore); // это вызывает некоторую странную ошибку

Ошибка: {close: function (_81) if (! this.isDirty) ........ В хранилище есть несохраненные изменения. Сохраните или верните изменения перед вызовом закрыть.

Эта ошибка проявляется только в IE7. FF не имеет проблем и корректно отображает данные. И да, я знаю, что в этом коде нет данных, но в реальном коде данные добавляются позже.

+0

console.debug не является согласованным во всех браузерах. Вы уверены, что вызов console.debug не вызывает проблем? Кроме того, попробуйте запустить Dojo из источника без 'build', чтобы имена переменных, такие как _81, попадали в несжатый. В Firebug или Visual Studio вы действительно можете получить трассировку стека для исключений или поместить в операторы breakpoints/debugger, чтобы узнать, что происходит. – peller

+0

Я уверен, что команда debug.console не является проблемой. Ошибка также очевидна в том, что сама сетка не отображает данные, находящиеся в хранилище. Я передал команду console.debug для отслеживания ошибки. Ошибка при получении источника: – mmontalvo

+0

{close: function (/ * object? */Request) \t {// summary: \t // Перегрузка функции закрытия базы ItemFileReadStore для добавления в проверку для хранения государство. \t // описание: \t // Перегрузка функции закрытия базы ItemFileReadStore для добавления в состояние проверки состояния хранилища. \t // Если хранилище по-прежнему грязное (несохраненные изменения), тогда вместо будет сброшена ошибка // очистка внутреннего состояния для перезагрузки с URL-адреса. \t // Очищаем если не загрязнен ... или выдаст ошибку, если – mmontalvo

ответ

0

Эта проблема не была описана. Ошибка не была в магазине. После того, как я выкапывал больше, я узнал, что реальной проблемой был анализ синтаксического анализа javascript, который был импортирован. Идя шаг за шагом, проблема заключалась в том, что объект JSON использовал термин «класс» в качестве атрибута. Это, похоже, противоречит стандартам IE.

+0

«класс», «по умолчанию» и ряд других зарезервированных слов JavaScript будет сделайте это. Рад, что вы это поймали. JSON заявляет, что все ключи должны быть цитировал. Полностью законно использовать {"class": "foo"} в JSON (и IE) – dante

Смежные вопросы