如何在不使用Parsley覆盖Flex 4中的其他元素的情况下向注入的数组添加元素

时间:2014-02-26 16:49:43

标签: arrays actionscript-3 flex flex4 parsley

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

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

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

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

public class MyObject
{
    public var things:String;
}

My Main mxml文件显示在动作脚本文件中保存的数据网格中MyArray中的所有项目:

<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);
    }
}

我试图包含相关代码,因为应用程序非常大,但如果需要更多信息,我可以提供它。

1 个答案:

答案 0 :(得分:0)

好的,唯一的办法就是创建一个新的MyObject实例,然后将其添加到MyArray中。

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