我正在尝试使用Probertson的SQLRunner类来连接到SQLite数据库的我的Actionscript 3.0模型与我的flex组件进行通信;我真的不确定如何最好地实现这一目标。我已经解决了一些例子,但我不知道告诉我的组件SQL查询结果的最简单方法。有人有什么建议吗?
以下是一些代码,让您了解我现在正在使用的内容。
<fx:Declarations>
<model:Patient id="editedPatient" FirstName="{FirstName.text}" />
</fx:Declarations>
<fx:Script>
<![CDATA[
/*imports*/
protected var _patient:Patient;
public function get patient():Patient
{
return _patient;
}
[Bindable]
public function set patient(value:Patient):void
{
_patient = value;
}
private function creationCompleteHandler(event:FlexEvent):void{
_patient.getPatient(currentUser);
}
protected function save_clickHandler(event:MouseEvent):void
{
_patient.update(editedPatient);
}
]]>
</fx:Script>
<s:TextInput id="FirstName" text="{patient.FirstName}" />
<s:Button id="save" label="save" click="save_clickHandler(event)" />
public function getPatient(PatientId:int):void {
var stmt:String = new String();
stmt = "SELECT * FROM Patient WHERE PatientID= @PatiendId;";
sqlRunner.execute(stmt, {PatientId:PatientId}, loadPatient_result, Patient);
}
private function loadPatient_result(result:SQLResult):void
{
if (result.data != null && result.data.length > 0)
{
var Patient:Patient = result.data[0];
}
}
答案 0 :(得分:1)
你可以做一些事情......
首先,我会创建一个Model that follows the Singleton pattern,以便您可以绑定任何视图或组件中的任何数据更改。
其次,我会在您调用的 loadPatient_result 方法中更新该单例模型。
如果您想要从结果和组件中解除耦合,您可以dispatch a custom event manually包含患者记录,让组件监听该类事件并相应地更新自身。或者让该视图监听该事件并相应地更新。
你走在正确的轨道上。我认为Singleton就是你所需要的。