我将尽可能详细地描述我的问题,以便这个问题有意义。我有一个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以某种方式在内存中共享。情况应该不是这样,因为模块数据应该被隔离。
任何想法如何解决这个问题?