【问题标题】:Flex - Passing data into tabbed viewsFlex - 将数据传递到选项卡式视图中
【发布时间】:2011-04-19 01:40:14
【问题描述】:

我有一个有 4 个视图的项目,我在其中使用带有 viewStack/NavigatorContent 的 tabBar。我有几个 HTTPServices 设置收集 XML 并转换为 Bindable ArrayCollections。何时以及如何将数据传递给图表、数据网格等在用户单击选项卡之前不可见的事物的最佳方式是什么?现在,我已经为每个项目设置了 creationComplete 函数,然后传递它。虽然它似乎有效,但这是最好的方法,还是有更好甚至更快的方法?

谢谢, 标记

【问题讨论】:

    标签: apache-flex flex4 httpservice dataprovider viewstack


    【解决方案1】:

    最好的方法是使用数据绑定。假设您有一个主容器,其中包含代表标签内容的ViewStack 女巫组件。因此,您应该在主容器中拥有[Bindable] 数据属性,如下所示:

    [Bindable]
    private var chartData:ArrayCollection;
    
    [Bindable]
    private var dataGridData:ArrayCollection;
    

    等等

    因此对于包含图表的组件,您应该使用数据绑定填充图表数据:

    <ViewStack>
        …
        <MyChartsTab chartData="{chartData}" />
        …
    </ViewStack>
    

    当然你应该在你的MyChartsTab 组件中引入相同的chartData 字段(确保它是public)。您的图表也可以填充数据绑定。

    因此,在获取数据后,您只需在主组件中填写您的字段,数据绑定将执行其余工作,无需您关心初始化。

    【讨论】:

      【解决方案2】:

      创建视图时,请确保您允许使用公共变量(如“dataProvider”),您可以在其中绑定所需的数据。像这样:

      <mx:ViewStack>
              <s:NavigatorContent>
                  <SomeComponent dataProvider="{someData}" />
              </s:NavigatorContent>
              <s:NavigatorContent>
                  <SomeComponent2 dataProvider="{someData}" />
              </s:NavigatorContent>
          </mx:ViewStack>
      

      在您拥有的自定义组件中:

      private var _data:Object; // use strong typing if possible
      
      public function set dataProvider(value:Object):void // use strong typing if possible
      {
          this._data = value;
      }
      
      public function get dataProvider():Object
      {
         return this._data;
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-12
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 2016-09-29
        • 2016-05-11
        相关资源
        最近更新 更多