Какой лучший способ обмена данными между компонентами во Flex? - PullRequest
2 голосов
/ 09 июля 2009

У меня есть приложение Flex, над которым я работаю для новой работы. Это своего рода приложение для тренировочных колес - я изучаю язык, и это не приложение, которому нужно разговаривать со службой, чтобы выполнять свою работу. В приложении есть несколько экземпляров комбинированных полей, которые имеют один и тот же набор возможных значений (скажем, выбор состояний: «Выполняется», «Отклонено», «Завершено»), которые я хочу использовать в одном источнике данных .

Каков наилучший способ справиться с этим?

Ответы [ 2 ]

3 голосов
/ 09 июля 2009

архитектура MVC .... ну в простых случаях только часть модели:

package 
{


    [Bindable]
    public final class ShellModelSingleton
    {   


        public var selectedStatus:ArrayCollection;




        ////////////////////////////////////////////
        // CONSTRUCTOR
        // ****DO NOT MODIFY BELOW THIS LINE*******
        /////////////////////////////////////////// 
        public function ShellModelSingleton(){}

        /****************************************************************
         * Singleton logic - this makes sure only 1 instance is created
         * Note: you are able to hack this since the constructor doesn't limit 
             * a single instance
         * so make sure the getInstance function is used instead of new 
             * ShellModelSingleton()
         *****************************************************************/ 
        public static function getInstance():ShellModelSingleton {
            if(_instance == null) {
                _instance = new ShellModelSingleton();
            }
            return _instance;
        }

        protected static var _instance:ShellModelSingleton;
    }

}

Затем вы можете обновить и использовать синглтон из любого компонента, подобного этому:

[Bindable] private var model:ShellModelSingleton = 
                              ShellModelSingleton.getInstance();

Компонент 1

<mx:DataGrid id="myDG" dataProvider="{model.selectedStatus}" />

Компонент 2

   <mx:List id="myList" dataProvider="{model.selectedStatus}" 
      labelField="label" />

Затем любые изменения, внесенные в коллекцию selectedStatus, будут обновлены в обоих компонентах.

0 голосов
/ 09 июля 2009

Просто инициализируйте их в массив нашего родительского компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...