2011-04-28 154 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