Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.05.2014, 16:10
Аспирант
Отправить личное сообщение для WalterScott Посмотреть профиль Найти все сообщения от WalterScott
 
Регистрация: 10.05.2009
Сообщений: 57

ComponentLoader, плавающая ошибка
Имеется модель для хранения объектов с xtype: 'src', то есть картинок, которые нужно вывести.
Ext.define('ItemModel', {
	extend: 'Ext.data.Model',
	idProperty: 'itemModel',
	fields: [{
		name: 'id',
		type: 'int'
	},{
		name: 'xtype',
		type: 'string'
	},{
		name: 'src',
		type: 'string'
	}]
});


С сервера передается такой JSON:
[{"id":0,"xtype":"image","src":"img\/newalbum.png"},{"id":1,"xtype":"image","src":"img\/newalbum1.png"}]

Затем изображения выводятся на панели с помощью loader-а:
var previews = Ext.create('Ext.Panel',{
	layout: 'column',
	height: 500,
	loader:{
	  autoLoad : true,
	  url: 'src/read.php',
	  renderer: "component",
	} 
});


При перезагрузке страницы периодически возникает ошибка:
Код:
TypeError: me.el is null
	

me.container = Ext.get(me.el.dom.parentNode);
в строке 37654 ext-all-dev.js.
При этом страница не отрисовывается.

Периодичность в разных браузерах разная. В IE вообще не возникает, однако появляется, если включить отладчик. В Firefox возникает более-менее часто, но как я заметил, тоже только при включенном firebug-е. В Опере и Хроме происходит постоянно. То, что ошибка проявляется только при включенных средствах разработки, наводит на мысль, что ошибка эта есть всегда, но она не критична, если "средства" её не зафиксировали.

Ошибка возникает только когда в панель добавлен loader.

Последний раз редактировалось WalterScott, 24.05.2014 в 16:20.
Ответить с цитированием
  #2 (permalink)  
Старый 25.05.2014, 14:37
Аспирант
Отправить личное сообщение для WalterScott Посмотреть профиль Найти все сообщения от WalterScott
 
Регистрация: 10.05.2009
Сообщений: 57

Я изменил способ добавления рисунков на панель. Теперь я использую хранилище с ридером и перебирая полученные элементы добавляю их на панель методом add:
var previews = Ext.create('Ext.Panel',{
	layout: 'column',
	height: 500,
	/*loader:{
	  autoLoad : true,
	  url: 'php/read.php',
	  renderer: "component",
	} */
});

Ext.define('ItemModelStore', {
	extend: 'Ext.data.Store',
	model: 'ItemModel',
	proxy: {
		type: 'ajax',
		url: 'php/read.php',
		reader:{
			type:'json',
			root: 'objs'
		}
	}
});

var itemModelStore = Ext.create('ItemModelStore');
itemModelStore.load(function() {
	itemModelStore.each(function(record){
		previews.add({
			'id': record.get('id'),
			'xtype': 'image',
			'src': record.get('src'),
			'style' : 'padding-left:5px;padding-top:5px;cursor:pointer;',
			listeners: {
				el: {
					click: function() {
						location.href = 'http://yandex.ru?id=' + record.get('id');
					}
				}
			}
		});
	});
});
previews.doLayout();

Этот способ больше подходит, так как проще добавлять обработчики событий и вообще...
Но по сути моей проблемы ничего не изменилось. Та же ошибка время от времени происходит в IE и FF, а в Опере и Хроме страница отрисовывается вообще практически только при первой загрузке. Только я ошибался по поводу того, что ошибка в IE возникает только когда активны "Средства разработки".
Ответить с цитированием
  #3 (permalink)  
Старый 04.06.2014, 23:02
Аспирант
Отправить личное сообщение для WalterScott Посмотреть профиль Найти все сообщения от WalterScott
 
Регистрация: 10.05.2009
Сообщений: 57

Проблема решена. Решение тут: http://www.sencha.com/forum/showthre...31#post1047631
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
firebug пишет ошибка invalid range in character class Dim@ Общие вопросы Javascript 5 10.05.2012 16:52
ошибка toLocaleTimeString zolboch Общие вопросы Javascript 2 15.11.2011 01:51
То-ли лыжи не едут, толи... возможно ошибка в коде. AzriMan Общие вопросы Javascript 19 18.05.2009 16:07
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22
IE: неизвестная ошибка выполнения _Kpot_ Internet Explorer 1 03.04.2008 11:00