Flex绑定属性链

本文详细介绍了Flex中的数据绑定机制,特别是如何通过可绑定的属性链来监控一系列属性的变化,并确保即使在运行时部分属性发生变化时也能正确更新。此外,还探讨了如何使用BindingUtils.bindProperty方法来实现复杂的属性链绑定。

  当指定一个属性作为数据绑定表达式的源时,Flex不仅监控这个属性的变化,也会监控由这个属性作为开始点的属性链的变化。整个属性链,包括源属性,被称为“可绑定的属性链”。在下面的例子中,firstName.text是一个可绑定的属性链:
<mx:Text id="myText" text="{firstName.text}"/>
    也可以使用很长的属性链,
<mx:Text id="myText" text="{user.name.firstName.text}"/>
    只有当text属性是可绑定的,数据绑定机制才能检查text属性的变化,但是,如果在运行时,要想向属性链中的部分属性赋予新值,那么属性链中的每个属性都必须是可绑定的,才能使数据绑定机制起作用。否则,在运行时更改user, name或者firstName属性会导致数据绑定机制无法检查text属性的变化。
     在使用BindingUtils.bindProperty()时,可以将绑定的属性链作为方法的参数。
BindingUtils.bindProperty(myText, "text", this, ["user", "name", "firatName", "text"]);

 

 

属性链就是bindProperty()和 bindSettet()等方法中的chain参数所表示的对象, 有时也许绑定源并不只是text1.text这样的简单形式,也可以是类似于user.name.text1.text,那么就存在一个关系链的问题,如 果这条链中的某一项发生了改变,会不会触发绑定呢?答案是如果你想让其改变其中的某一项都能触发数据绑定,那么这条链的每个元素必须是可绑定的。对于上面 的这种形式,可以这样使用bindProperty方法:
bindProperty(text2, "text", this, ["user", "name","text1","text"])。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值