现在的位置: 首页 > 综合 > 正文

FLEX实践—数据源变化问题

2013年11月03日 ⁄ 综合 ⁄ 共 717字 ⁄ 字号 评论关闭

今天在做FLEX项目时遇到一个问题:

前提描述:

界面上有两种STATE:NEW_STATE,UPDATE_STATE

UPDATE_STATE下,数据来自数据库查询的结果,界面上的控件绑定为

<mx:TextInput id="code" text="{formData.code}">

其中formData为全局变量,用于接收查询到的数据对象,而code则是数据表中的一个字段

 

NEW_STATE下,做了以下操作:

formData = new Object();

formData.code = "TEST";

 

场景描述:

先在界面上查询数据,查询后点击按钮进入详细信息界面,即UPDATE_STATE,此时code.text="REALLY"(数据库中保存的数据)

接着通过新建按钮切换到NEW_STATE,发生了奇怪的现象,code的内容并没有像预期设置的一样为"TEST",而是"REALLY"

 

修改方案:

查了半天,没找出原因,原本以为切换到NEW_STATE后会执行

formData = new Object();

formData.code = "TEST";

而<mx:TextInput id="code" text="{formData.code}">又指定了将code.text与formData.code进行绑定,应该能在NEW_STATE时更新code.text,可是结果却没有;

 

最后采用了以下的方法

formData = new Object();

var temp:Object = new Object();

temp.code = "TEST";

formData = temp;

 

修改后结果就和预期的一致了。

 

结论:考虑了很久也没想出合适的解释,只能说暂时解决了这个问题。

 

抱歉!评论已关闭.