Extjs 4 Установите каждый элемент идентификатор
Вопрос
Поэтому я работаю с новым EXT после шаблонов MVC, создавая контроллеры, которые прослушивают события, чтобы выстрелить методами. У меня есть представление с деревом, загруженным как меню администратора, и я хочу прослушать контроллер «пользователей», когда нажимается элемент дерева «Список всех пользователей», чтобы я мог показать сетку со всеми пользователями. Моя логика говорит, что я должен установить идентификатор каждому элементу дерева, чтобы убедиться, что я слушаю правильное и возможным ... проблема, хотя я отправляю и идентификатор своему JSON на каждом элементе, это никогда не назначается. Идентификаторы элементов по-прежнему имеют тип идентификаторов элементов ext-Gen1091 '.
Есть идеи, как мне присвоить уникальный идентификатор каждому из моих элементов дерева?
Мой json выглядит так:
{"expanded":"true","text":"Users","id":"users","children":[{"text":"List all users","id":"userslist"....
Решение
Вам не нужно использовать HTML -идентификаторы для определения записи, с которой вы обрабатываете. ExtJS предоставляет API, которые позволяют вам легко справляться с операциями, слушать события и т. Д. На дереве или других компонентах.
С тех пор, как у вас уже есть идентификатор, назначенный каждому узлу на дереве. Вы можете использовать тот же идентификатор для работы, когда происходит действие / событие. Все, что вам нужно сделать, это добавить соответствующие методы слушателя событий на панель дерева. Например, если вы отслеживаете нажмите на узел, вы можете использовать itemclick
. Анкет Параметры методов предоставляют вам доступ ко всей информации, которая вам понадобится.
Вот код скелета:
itemclick: function(Ext.view.View this, Ext.data.Model record, HTMLElement item, Number index, Ext.EventObject e) {
// Access the record using record or you can access the HTML using item variable.
}
Точно так же вы можете использовать другие события и отслеживать действия пользователей.