2015-04-08 2 views
0

Я работаю над одностраничным ExtJS-приложением. Проблема с приложением заключается в том, что всякий раз, когда пользователь обновляет экран, он возвращается в исходное состояние. Требуется, чтобы все открытые компоненты оставались открытыми. Например, если я работаю над окном и обновляет экран, он должен снова открыть это окно. Какими должны быть шаги для достижения этого?ExtJS: Сохранение состояния компонентов с использованием URL-адреса

Первоначальная мысль заключается в том, что если мне удастся добавить идентификатор компонента (в этом случае) или что-то еще в URL (например, www.example.com/index.html!#windowservices), нажмите кнопку, а затем на загрузку страницы, этот компонент открывается с помощью URL (! # windowservices). Это возможно? Может ли URL-адрес быть изменен (даже если мне нужно сделать фальшивый вызов ajax)? Может ли кто-нибудь указать мне на любой пример, где URL-адрес изменен и хранится в истории браузера?

+0

Спасибо, Саки. Похож на http://extjs.eu/ext-examples/#route-mvvm - это ответ. Спросит вас больше, когда потребуется. – user1640256

+0

Хорошо, продолжайте спрашивать. :) – Saki

ответ

3

Есть две вещи, которые уже имеют некоторую инфраструктуру в Ext, вы могли/должны использовать: состояние и маршрутизацию. Государство помогает хранить такие вещи, как размер окна и положение, порядок сортировки сетки или аналогичные постоянные. Маршрутизация помогает вам перейти на конкретный экран приложения непосредственно с URL-адреса. См. Документы Sencha и http://extjs.eu/examples для получения дополнительной информации и примеров и/или продолжать спрашивать здесь по мере необходимости.

0

Но почему вы хотите сделать это вручную? AngularJS избежать вам нужно беспокоиться о том, что просто впрыснуть ngRoute в вашем приложении, определите ваши маршруты и волшебство происходит ...

AngularJS: https://angularjs.org/

ngRoute: https://docs.angularjs.org/api/ngRoute

Getting начать с маршруты и шаблонный: https://scotch.io/tutorials/single-page-apps-with-angularjs-routing-and-templating

Построенный с AngularJS: https://builtwith.angularjs.org/

+0

Спасибо за предложение, но приложение является чистым одностраничным приложением ExtJS. Невозможно добавить к нему AngularJS. Кроме того, то же самое можно добиться путем маршрутизации ExtJS. Я не знал, но думаю, этого достаточно для меня. Еще раз спасибо. – user1640256

Смежные вопросы