0

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 as ArrayCollection); 在函数 wSDatos_resultHandler 上(无需使用 var WS)所以我正在尝试在选项卡式应用程序上做一些类似的事情谢谢!

4

1 回答 1

0

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

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

于 2013-04-08T15:19:55.607 回答