У меня есть проверочное дерево ExtJS ExtJS Check Tree, что я пытаюсь добавить элемент управления на основе элементов, отмеченных или непроверенных. Однако, похоже, он не срабатывает правильно.ExtJS: Показать/скрыть управление на флажке selectionchange
Вот Fiddle Example
Когда флажок «A» выбран, я хочу, чтобы скрыть текстовое поле, 'testValue'
, который работает, но если я отмените флажок «A», я хочу, чтобы показать текстовое поле, 'testValue'
, который не работает.
Для этого теста я просто смотрю, есть ли selections.selected.length === 0
. Однако, когда я снимаю выделение с любого из этих флажков, слушатель, похоже, не запускается, так как предупреждение не запускается - плюс, если я затем попытаюсь снова снять флажок, он все равно не срабатывает.
Я бы использовал модель выбора (как описано ниже) для достижения этой цели (так как я знаю, что она работает), но тогда это устанавливает флажки на всех моих элементах дерева, когда я просто хочу иметь узлы листа с флажками.
selModel: {
type: 'checkboxmodel',
listeners: {
selectionchange: 'onCheckedNodesChange'
}
}
Любые предложения были бы очень желанными!
EDIT Добавление allowDeselect: true
и слушателя для select
и deselect
вроде работал (я обновил скрипку демонстрировать поведение):
selModel: {
allowDeselect: true,
listeners: {
deselect: function(model, record, index) {
text = record.get('text');
alert(text);
},
select: function(model, record, index) {
text = record.get('text');
alert(text);
}
}
},
Я хочу, чтобы убедиться, что при выборе «A» , текстовое поле остается скрытым, но если вы выберете другой элемент в списке и затем отмените его выбор, появится текстовое поле.
Я пытаюсь использовать метод getChecked(), когда происходит событие changechange. Однако, похоже, это только возвращает данные, когда я делаю submit (например, в элементе управления Get checked nodes
). Любые предложения будут приветствоваться. Это не должно быть так сложно.
Я пробовал это, и он, похоже, не срабатывает на 'checkchange.' См. Приведенную выше ссылку Fiddle. –
В коде A, B, C нет прав на дочерние элементы, поэтому тест не предупреждается, иначе он будет работать –
предупреждение за пределами, если оно будет работать. Я уже реализовал некоторую функцию, используя событие смены чека, его работу –