【问题标题】:How to add elements to an injected array without over-writing the other elements in Flex 4 with Parsley如何在不使用 Parsley 覆盖 Flex 4 中的其他元素的情况下向注入的数组添加元素
【发布时间】:2014-02-26 16:49:43
【问题描述】:

我有一个用来存储对象集合的数组。我的应用程序允许用户向数组中添加新对象并编辑对象的内容。数组中的所有对象都是同一类型,我遇到的问题是,如果我添加一个新对象或编辑一个现有对象,那么数组中包含的所有对象都将成为新添加对象的精确副本。 有没有办法阻止这种情况?

在我的应用程序中,我有一个存储 ArrayCollection 的对象:

public class MyArray
{
    public var array:ArrayCollection = new ArrayCollection;
}

我有一个对象,我希望在这个数组中存储它的实例:

public class MyObject
{
    public var things:String;
}

我的主 mxml 文件将 MyArray 中的所有项目显示在一个数据网格中,该数据网格保存在一个 actionscript 文件中:

<App xmlns:par="http://spicefactory.org/parsley">
    <fx:Declarations>
        <par:ContextBuilder config="MainContext"/>
        <par:Configure/>
        <par:FastInject property="mainpm" type="{MainPM}"/>
    </fx:Declarations>
    <fx:Script>
         [Inject][Bindable]
         public var mainpm:MainPM;
    <fx:Script>

然后是actionscript文件:

public class MainPM
{
    [inject][Bindable]
    public var thearray:MyArray;

    public function addNew(thingtoadd:MyObject):void
    {
        thearray.addItem(thingtoadd);
    }
}

由于应用程序很大,我已尝试包含相关代码,但如果需要更多信息,我可以提供。

【问题讨论】:

    标签: arrays actionscript-3 apache-flex flex4 parsley


    【解决方案1】:

    好吧,解决这个问题的方法是创建一个 MyObject 的新实例并将其添加到 MyArray。

    public function addNew(thingtoadd:MyObject):void
    {
        var addobj:MyObject = new MyObject;
        addobj.things = thingtoadd.tings;
        thearray.addItem(addobj);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多