Flex Mobile - служба HTTP данных приложений с вкладками

Мобильный проект Flex У меня есть приложение с вкладками и службой http. Я хотел бы загрузить данные, и как только они будут загружены, передайте их на первую вкладку, чтобы первая вкладка могла отображать список с некоторыми данными службы http, я хотел бы использовать свойство firstViewData вкладки (как, вероятно, на в будущем буду отправлять разные данные на каждую вкладку)

Я пробовал следующее, но не получаю данных о представлении :-( В основном приложении

<?xml version="1.0" encoding="utf-8"?>
<s:TabbedViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
                                  xmlns:s="library://ns.adobe.com/flex/spark"
                                  xmlns:wsdatos="services.wsdatos.*"
                                  creationComplete="tabbedviewnavigatorapplication1_creationCompleteHandler(event)"
                                  applicationDPI="160">
<fx:Script>
    <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.events.FlexEvent;
        import mx.rpc.events.ResultEvent;

        public var WS:ArrayCollection;


        protected function operation1():void
        {
            Operation1Result.token = wSDatos.Operation1();
        }

        protected function tabbedviewnavigatorapplication1_creationCompleteHandler(event:FlexEvent):void
        {
            operation1();
        }

        protected function wSDatos_resultHandler(event:ResultEvent):void
        {
            WS = event.result as ArrayCollection;
        }

    ]]>
</fx:Script>

<s:ViewNavigator label="Home" width="100%" height="100%" firstView="views.HomeView" firstViewData="{WS}"/>
<s:ViewNavigator label="Publicidad" width="100%" height="100%" firstView="views.PublicidadView"/>
<s:ViewNavigator label="Eventos" width="100%" height="100%" firstView="views.EventosView"/>
<fx:Declarations>
    <s:CallResponder id="Operation1Result"/>
    <wsdatos:WSDatos id="wSDatos" result="wSDatos_resultHandler(event)"/>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
</s:TabbedViewNavigatorApplication>

На домашнем виде

   <?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="Home">
    <fx:Declarations>
            <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
        <s:List width="100%" height="100%" dataProvider="{data}" labelField="Nombre"/>
    </s:View>

Я новичок в Flex, поэтому мне, вероятно, не хватает основных понятий ... Любая помощь в том, как передавать данные?

Пример ниже отлично работает в приложении без вкладок, я просто использую navigator.pushView (views.HomeView event.result как ArrayCollection); в функции wSDatos_resultHandler (нет необходимости использовать var WS) Итак, я пытаюсь сделать что-то подобное в приложении с вкладками. Спасибо!


person Jorge Fernández    schedule 06.04.2013    source источник


Ответы (1)


Вам нужно будет пометить переменную WS как [Bindable]. Без этого уведомления при изменении данных не отправляются.

Что происходит, так это то, что создается представление, и для отображения используются данные из WS (изначально не указанные); тогда HTTP-запрос заполняет возвращаемое значение WS, но поскольку он не помечен как Bindable, представление не уведомляется об обновлении.

person Bill Turner    schedule 08.04.2013
comment
Большое спасибо за вашу помощь!! - person Jorge Fernández; 17.04.2013