Хорошо, модули во Flex популярны, но я понятия не имею, почему документация и примеры различных применений модулей Flex могут быть столь скудными.
В любом случае, для этого вопроса я возьму классического сотрудника /Пример отдела.У меня есть main.mxml, который содержит mx: TabNavigator.Каждая вкладка загружается с помощью s: ModuleLoader.
Таблицы: Сотрудники {empID, empName, deptID}, Deparments {deptID, deptName}
Навигатор вкладок содержит только одну вкладку (для нашего примера) называется Сотрудник.У меня есть модуль Employee.mxml.В этом модуле у меня есть сетка данных, которая заполнена данными сотрудника.Я использую функцию getEmployees ($ deptID).Эта функция, как вы можете догадаться, возвращает мне массив сотрудников, которые работают в определенном отделе.
За пределами TabNavigator у меня есть DepartmentDropDownList, который заполняется с именем кафедры.deptName.
Моя цель - загрузить модуль Employee, когда я выбираю конкретный отдел из DropDownList.У меня есть changeHandler для DropDownList, который может дать мне deptID.
protected function departmentDropDownList_changeHandler(event:IndexChangeEvent):void
{
MyDeptID=departmentDropDownList.selectedItem.deptID;
//var ichild:*=employeeModule.child as IModuleInfo;
}
Теперь вопрос на миллион долларов: как передать этот deptID в модуль «Сотрудники».У последнего есть employee_creationCompleteHandler, который вызывает getEmployees (deptID):
protected function EmployeesDg_creationCompleteHandler(event:FlexEvent):void
// I only need to get the deptID from the departmentDropDownList outside the Employee module.
// If I could create a global variable deptID, that would be great!
getEmployeessResult.token=employeeService.getEmployeess(deptID);
}
Я пытался использовать переменные [Bindable], но безуспешно.
Буду признателен за ваши предложения.