Flex mobile - 选项卡式应用程序数据http服务

时间:2013-04-06 21:13:12

标签: flash-builder flex-mobile

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) 所以我试图在选项卡式应用程序上做类似的事情 谢谢!

1 个答案:

答案 0 :(得分:0)

您需要做的一件事是将变量WS标记为[Bindable]。如果没有这个,数据更改时就不会发送通知。

正在发生的是创建视图并使用来自WS(最初未指定)的数据来显示;然后HTTP请求填充WS返回值,但由于它没有标记为Bindable,因此不会通知视图更新。