Как получить динамический доступ ко всем текстовым вводам в пользовательском компоненте в flex 4 - PullRequest
0 голосов
/ 08 июня 2011

У меня есть пользовательский компонент, который содержит много элементов управления promptingTextInput.

Когда я нажимаю кнопку, я хочу, чтобы текстовое поле всех promptingTextInputs стало пустым.(Примечание: у меня около 60 promptingTextInputs)

Как получить динамический доступ к элементам управления?Я ищу гибкий эквивалент $ ('input [type = text]') (как в jquery).

1 Ответ

0 голосов
/ 08 июня 2011

На мой взгляд, лучший способ получить это - следовать дизайну, основанному на данных.Создайте объект данных (я имею в виду выделенный класс) с выделенными полями (типа String) для каждого вашего TextInput.Затем свяжите свои текстовые вводы с полями, используя двухстороннее связывание.Затем вы можете очистить все текстовые вводы, воссоздав объект.Я проиллюстрирую это следующим псевдокодом.Давайте создадим наш объект данных, известный как VO:

[Bindable]
public class Person
{
    public var firstName:String;
    public var lastName:String;
}

Тогда наш класс MXML:

<fx:Script>
<![CDATA[
    [Bindable]
    private var person:Person = new Person();
]]>
</fx:Script>
<s:TextInput text="@{person.firstName}" />
<s:TextInput text="@{person.lastName}" />
<s:Button label="Clear" click="person = new Person()" />

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

...