Использования Сенча Прикосновения (2.2) с Сенча Architect 2магазинов и список DataView - Невозможно добавить элемент - IndexOf нуля
У меня есть древовидная структура, в которой я перемещаться.
Узлы Элементы и элементы могут быть либо папкой, либо листом.
Чтобы отобразить элементы моего Ext.dataview.dataview (LIST), я использую хранилище (storeID: 'elementstore') и Ext.dataview.component.Dataitem.
Вот мой код, чтобы заполнить СПИСОК вначале, и каждый раз мы открываем папку, чтобы идти глубже в дерево.
Заполнение магазина в первый раз, отключить событие так обновление() не вызывается дважды есть я буду переключение с этой точкой зрения сразу после создания этого. Он хорошо работает и возвращает желаемый результат. У меня есть в моем СПИСОК, на котором отображается первый уровень папок и листов.
Это вызывается непосредственно в списке с onItemTap Event
var EStore = Ext.getStore('elementstore');
EStore.removeAll();
EStore.suspendEvents();
EStore.add(record.get('arrElement'));
EStore.resumeEvents(true);
Опорожнение и пополнением магазин с достигнутым уровнем дерева.
Это вызывается непосредственно в списке с onItemTap Event
if(record.get('strUIType') === 'folder')
{
INDEX_STACK.push(index);
store = Ext.getStore('elementstore');
store.removeAll();
store.add(record.get('arrElement'));
}
Что плохого в том, когда я пытаюсь идти назад, идя в моем дереве. Здесь - код, который находится в контроллере Sencha.
Это на самом деле не возвращается на один уровень, а обратно на верхнем уровне. ACTIVE_PROJECT - это индекс активного дерева, все из которых находятся в моем проектном магазине.
.
var popped =INDEX_STACK.pop();
var tab = tabpanel.getParent().getParent().getParent().getComponent('projects_Tab');
if(popped === undefined)
{
tab.setActiveItem(0);
}
else
{
var eStore = Ext.getStore('elementstore');
eStore.removeAll();
//Crashes!
eStore.add(Ext.getStore('projectstore').getAt(ACTIVE_PROJECT).get('arrElement'));
}
ли вы видите eStore.add (....) это Грохот линия, на которой я получаю следующее сообщение об ошибке:
Uncaught TypeError: Cannot call method 'indexOf' of null sencha-touch-all.js:21
Ext.Array.contains.e
Ext.Array.include
Ext.define.join
Ext.define.insert
Ext.define.add
Ext.define.onMain_TabsTap (----Yep this line is my code the rest is sencha touch...
Ext.define.doFire
Единственное, я добиваюсь, чтобы добавить к В этом контроллере хранится пустой Ext.create (CarboZero.model.Element). Я ничего не могу получить от своего активного проекта.
Есть что-то неправильно с удалением и чтением? Является ли мой магазин поврежденным от того, как я его использую? Я работал над этим в течение 2 дней, не получая ничего, чтобы правильно работать ...
EDIT К ВОПРОСУ
Я просто установить в моем элементе сохранения destroyRemovedRecords ЛОЖЬ.
Все работает, но я не понимаю НИКОГДА, почему он исправил проблему с моей конкретной структурой ... Что это за удаление(), выполняющее именно ???Свойство
Спасибо, что выставили этот вопрос. Как и во всех ошибках Sencha, найти решение для затенения мусора, которое просто кажется случайным образом происходить в рамках, действительно сложно. Это помогло мне решить ту же проблему. –
Взгляните на мой профиль, он полон этих (стажировка на сенча, и я никогда не делал этого) – Fawar
Кажется, тоже нужно работать в ST2.3.1. Не имеет никакого смысла, хотя. – Flo