extjs Сохранение состояния представления компонента перед его удалением из родительского компонента

Позвольте мне объяснить мой сценарий. Я использую ExtJS5. У меня есть компонент представления (назовем его viewOne), содержащий два поля со списком, кнопку поиска и кнопку действия, при нажатии кнопки поиска заполняется сетка. Этот viewOne находится в компоненте родительского представления (viewParent). Мне нужно загрузить второе представление (viewTwo) при выборе некоторой строки сетки и нажатии кнопки действия, загружается новое представление (viewTwo) в parentView. Когда я возвращаюсь из viewTwo в viewOne, мне нужны старые значения полей со списком, чтобы повторно выполнить поиск.

В настоящее время я сохраняю значения полей со списком в хранилище и устанавливаю их, когда после просмотра отображается и вызывается поиск. Мы отказались от макета карты для этой реализации.

Я хотел знать, как это можно сделать с помощью Ext.state , я не могу найти ни одного примера того же, что близко к решению моей проблемы. Любой другой способ сделать это?


person Ameya    schedule 19.11.2014    source источник


Ответы (1)


Государство кажется разумным для этого. Прежде всего, вы должны установить StateProvider (вызвав Ext.state.Manager.setProvider) в экземпляр класса, который расширяет Ext.state.Provider. Тогда государство должно работать на вас. Единственное, что вы должны помнить, это установить свойство stateful на true и установить stateId компонента.

Обычно вам не нужно сохранять состояние самостоятельно. Все встроенные компоненты с отслеживанием состояния имеют определенные события состояния. Когда происходит такое событие состояния (например, expand на панели), состояние сохраняется автоматически. Вы можете настроить события состояния, вызвав addStateEvents в initComponent.

Чтобы предоставить пользовательское состояние компонента, вы должны переопределить методы applyState и getState. Когда вы комбинируете его с addStateEvents, у вас есть все, что вам нужно.

Пример: http://jsfiddle.net/48jw81da/16/

person Krzysztof    schedule 20.11.2014