2011-08-05 47 views
1

我目前对一组火花表单元素使用数据绑定,并想知道我绑定的数据类是否脏。简单的方法来判断数据是否脏

可能如果spark“Form”元素触发一个变化事件,并且被一个spark“表单”捕获,那么该变化事件会很好。然后,我可以添加一个事件侦听器到表单。但我没有看到这样的事情。

因此,除了原始数据类的副本比较绑定的数据类或添加一个变化事件给每个窗体元素,捕捉事件,什么是会心一类对象的一种简单的方法有哪些变化?

回答

1

将TextInput或其他任何输入元素扩展到表单中,然后在组件中创建complete注册更改事件的侦听器,处理程序发送冒泡事件,然后在包含表单使用您的自定义元素,并通过AS3将侦听器添加到您分派的事件的表单中,并停止它在此时的传播。

否则我想改变处理器的每个你的第二个解决方案将不会太差。如果你有很多的表单元素,或者是动态的,你可以写,通过表格的形式项步骤,并检查自己的孩子,那么你只需要编写与每个类类型涉及开关功能(可以使用http://www.actionscriptdeveloper.co.uk/getting-the-class-of-an-object-in-as3/on每个子元素确定它是什么类型,然后如果它是一个TextInput或任何注册适当的事件来调用你常用的函数,只要确保它有一个通用的事件,因为它的参数,因为所有其他事件将是子类物)。

所以,据我所知有听从ArrayCollection的或其它包装的ListCollectionView数据结构的变化对基础数据没有简单的方法。部分问题是添加集合的元素不需要实现任何类型的接口以允许注册监听器。也就是说,数据元素不一定是事件派发器,将这些信息传递给列表的唯一方式是,如果数据元素在包含该元素的所有列表上都有句柄,并且它们将列表中的某些内容标记为在设置任何属性时指示“脏”。这些都可以在语言的限制范围内实现,但不是开箱即用,因为它们的用法可能有限,并且在其他情况下可能会不必要地膨胀ListCollectionView的CPU使用量。

+0

对不起了这么久,我只是让周围理解这一切是如何工作。感谢你的回答。 – Shanimal

+0

没有问题,完全忘记了曾经左右写这个答案,貌似我是一个有点抽象为您的问题很好表达,所以我想你有柔性的一个很好的理解了。无论如何,如果你还没有理解我在这里写的东西,或者想让我重新说出/详细说明,随时问。 – shaunhusain

相关问题