История и выбор модели вопросов
Я пытаюсь создать приложение, используя Extjs 4.1. В общем: это окно просмотра с древовидной панелью на западе и центральной панелью, то есть фактически это панель с вкладками. Когда пользователь нажимает на узел дерева, вкладка заполняет центральное представление. В панели дерева я установил атрибут, который после выбора узла отменяется (deselectAll). Причина этого заключается в том, что пользователь может открывать множество вкладок из разных мест (например, внутри каждой вкладки). Но когда я устанавливаю вышеуказанный атрибут, он выдает ошибку ("данные" не определены). Неопределенные данные - это данные, связанные с узлом дерева. Итак, вопрос относительно выбора модели:
Как я могу решить эту проблему (решение может состоять в том, чтобы выбрать первый узел, но я не хочу его)?
Что касается утилиты истории, мне нужно реализовать кнопку браузера назад. Особенно я хочу отключить кнопку обновления браузера. Если пользователь откроет, скажем, 15 вкладок и случайно нажмет на обновление браузера или "F5", он / она потеряет все. Я перепробовал много вещей, но безуспешно. Я не могу понять "Ext history util". Так,
Есть ли хороший пример там?
Кто-нибудь может подсказать мне, как это сделать?
Обратите внимание, что приложение построено с учетом новой архитектуры "MVC".
1 ответ
Остановить событие обновления довольно легко - при условии, что ваша страница находится в фокусе. Например:
Ext.getDoc().on('keypress', function(event) {
if (event.getCharCode() == event.F5) {
event.stopEvent();
console.log('you stopped the refresh event');
}
});
Если ваша страница не имеет фокуса, то ничего не поделаешь, но большую часть времени ваша страница теряет фокус, когда открывается другая вкладка браузера, поэтому F5 будет обновлять ее вместо этого в любом случае.
Я все еще пытаюсь обдумать первую часть вашего вопроса, но я подумала, что поделюсь этим.
РЕДАКТИРОВАТЬ
Вместо того, чтобы пытаться остановить поведение браузера по умолчанию (то, что вы можете делать только на очень ограниченной основе), вы должны изучить управление состоянием. ExtJS поддерживает его на многих компонентах. Вот пример ExtJS.
Также вот пример контроля истории браузера.