Поддерживать новые и уже существующие данные между представлениями

По сути, мне нужно знать, как создать другое поле textInput при передаче данных из одного представления в другое, сохраняя при этом данные, которые были переданы для начала. Взглянуть:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView">   

    <fx:Script>
        <![CDATA[
            protected function btn_addTask_clickHandler(event:MouseEvent):void
            {
                var tmpObj:Object = new Object(); 
                tmpObj.firstTask = ti_input.text; 
                navigator.pushView(taskListView, ti_input.text); 
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Place nonvisual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <s:VGroup height="100%" width="100%" >
        <s:TextInput id="ti_input" prompt="Enter Text Here" /> 
        <s:Button label="Add Task" id="btn_addTask" click="btn_addTask_clickHandler(event)"/>
    </s:VGroup>

</s:View>

Это мой первый взгляд. Я хочу, чтобы пользователь мог вводить текст в поле textInput и видеть его в следующем представлении, но я хочу, чтобы в следующем представлении сохранялись введенные пользователем данные, возвращался к первому представлению, затем принимал другую запись от пользователя и создайте другое поле textInput во втором представлении. Это как приложение блокнота. Пользователь вводит задачу в первом представлении, затем он или она может видеть ее во втором представлении. Затем пользователь должен иметь возможность вернуться к первому виду и создать другую задачу, которая также переходит ко второму виду, но не заменяет первую задачу, которая была введена. Моя проблема заключается в создании новых полей textInput, когда новые данные поступают во второе представление. Есть идеи? Возможно, поля textInput не являются визуальными компонентами, которые я должен использовать...

1 ответ

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

Но в любом случае, поскольку вы не будете отправлять обратно данные при переносе действительного представления (обратно со второго представления на первое), вы можете реализовать другой подход: каждый раз, когда одно из представлений будет добавлять / удалять / редактировать значение, само представление будет хранить значение в другом классе, доступном для обоих представлений (может быть одноэлементным, если хотите). И каждый раз, когда будет загружено одно из представлений (обработчик view_activation), просто загружайте это значение из этого третьего класса.

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

Другие вопросы по тегам