Sencha Touch 2: вставить в TreeStore / NestedList - PullRequest
6 голосов
/ 19 марта 2012

Я использую NestedList с базовым TreeStore. Теперь я хочу добавить элементы в NestedList в виде листьев. Как я могу это сделать?

В настоящее время мой код (Controller, onAddButtonTapped) выглядит следующим образом:

var store = Ext.getStore('menuStore');
var customerAreaNode = store.getRoot().getChildAt(1);  
customerAreaNode.appendChild({name: "text", leaf:true});
customerAreaNode.expand();
store.sync();

Этот код приводит к двум новым пустым спискам на уровне листа (за правильным узлом) и одному новому списку на уровне узла. Каждая новая запись не имеет имен, показанных в NestedList, но каждый элемент содержит «текст» в своем поле имени. Любопытно, что одна из новых записей на уровне листьев не относится к базовой модели. Таким образом, методы, соответствующие модели, не могут быть найдены:

Uncaught TypeError: Cannot call method 'getSelectedName' of undefined

Кто-нибудь знает простой учебник по добавлению данных в NestedList / TreeStore? Я не смог найти ни одного хорошего примера в документах касания sencha.

Ответы [ 2 ]

3 голосов
/ 07 декабря 2012

Поле отображения по умолчанию для конечных элементов - «текст». Вы можете получить информацию здесь. Если вы хотите использовать «текст» в качестве поля отображения, вам нужно изменить эту строку на

customerAreaNode.appendChild({text: "text", leaf:true});

Или вы можете изменить поле отображения вашего вложенного списка, чтобы ваша модель не нуждалась в этом изменении.

yournestedlist.setDisplayField('name');

Надеюсь, это поможет.

0 голосов
/ 17 декабря 2013

В моем случае я использовал для обновления корневых и дочерних узлов, как показано ниже:

Ext.getStore('Contactsstore').getAt(1).getChildAt(0).set('Email',contactemail);    
Ext.getStore('Contactsstore').getAt(1).set('ContactTitle',contacttitle);
...