2011-04-28 107 views
0


我有一些代码。我使用Cairngorm。
我创建了一个简单的命令,控制器,事件,modelLocator,模型和视图。
我认为我有在textInput绑定具有可变“值”构成我的模型
<s:TextInput id="textInputName" width="100%" text="{modelLocator.model.value}" valueCommit="modelLocator.model.value = textInputName.text"/>
<mx:HRule width="100%"/>
<s:Button width="100%" label="Reset" click="reset()"/>
当我启动,TextInput的文本是我的模型的“价值”的值。
当我更改textInput的值时,它会更改我的模型的“值”。
但是当我进行重置时,它会发送一个事件并将模型的“值”设置为“”,但textInput的文本不会更改。
为什么? textInput的值不会因为模型的“值”值的变化而改变吗?
如果不是我该怎么做才能做到这一点?问题绑定

回答

1

确保该值在模型中是可绑定的。

作为一个侧面说明,而不是使用valueCommit事件,您可以使用现有的双向绑定功能中的Flex 4:

<s:TextInput id="textInputName" width="100%" text="@{modelLocator.model.value}"/> 

当值更新,文本属性也更新(提供价值可绑定),反之亦然

+0

我发现我的问题。我的模型是可绑定的。但是当我重置时,我使用了我写的一个函数。函数是'_value =“”'(我直接改变'_value'的值),这是问题所在。我必须把'value =“”'(使用setter改变'_value'的值),并且改变textInput的文本。并感谢您的双向绑定 – Snote 2011-04-28 11:05:14