Flex - 如何隔离valueObjects或CallResponders?

时间:2011-08-08 15:10:05

标签: flex actionscript-3

我将尽可能详细地描述我的问题,以便这个问题有意义。我有一个TabNavigator,每个标签都是一个模块。

我有两个标签,People和Departments(即,我有两个模块,People.mxml和Departments.mxml),并且每个标签都定义了相同的命名空间:xmlns:valueObjects="valueObjects.*"。在这两个模块中,我都进行了一些服务调用。

我有两个服务:PeopleService和DepartmentService。在这两个模块中,我定义了以下valueObject:

<valueObjects:Person id="person"/>
<valueObjects:Department id="department"/>

并定义了以下呼叫响应者:

<s:CallResponder id="getPeopleResult" result="person = getPeopleResult.lastResult as Person;"/>
<PersonService:PersonService id="personService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
showBusyCursor="true"/>

<s:CallResponder id="getDepartmentsResult" result="department = getDepartmentsResult.lastResult as Department;"/>
<DepartmentService:DepartmentService id="departmentService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"
showBusyCursor="true"/>

我在选项卡People和datagrids中有一个dataGrid,列出了所有人员和所有部门的工作。当我单击datagrid中的一行时,我得到了填充的detailsForm没有问题。 “部门”选项卡中的dataGrids可以正常工作。但是,当我单击dataGrid时,不会填充detailsForms,并且valueObjects person和department将被跟踪为NULL。

如果我禁用“人员”选项卡,则“部门”选项卡中的detailsForm可以正常工作。

我在尝试解决问题时所做的工作:为所有valueObjects和ServiceCalls提供唯一ID。那没用。

我认为可能是问题: 来自两个模块的valueObjects以某种方式在内存中共享。情况应该不是这样,因为模块数据应该被隔离。

任何想法如何解决这个问题?

0 个答案:

没有答案