フレックスのモジュールは一般的ですが、Flexモジュールのさまざまな使い方に関するドキュメントや例があまりにも稀有なのはなぜかわかりません。フレックスモジュールとアプリケーション間の通信
とにかく、この質問では、古典的な従業員/部署の例を取り上げます。私は、mx:TabNavigatorを含むmain.mxmlを持っています。各タブはs:ModuleLoaderによって読み込まれます。
テーブル:従業員{EMPID、のempName、DEPTID}、{Deparments DEPTID、DEPTNAME}
タブナビゲータは、従業員と呼ばれる(この例の場合)のみつのタブを含んでいます。私はEmployee.mxmlモジュールを持っています。そのモジュールには、従業員の詳細が入力されたデータグリッドがあります。私はgetEmployees($ deptID)関数を使用します。この関数は、あなたが推測しているように、特定の部門で働く従業員の配列を返します。
私はdepartmentNavigatorの外にdepartments.deptNameで設定されたdepartmentDropDownListを持っています。
私の目的は、DropDownListから特定の部門を選択するときにEmployeeモジュールをロードすることです。私はdeptIDを与えることができるDropDownListのchangeHandlerを持っています。
protected function departmentDropDownList_changeHandler(event:IndexChangeEvent):void
{
MyDeptID=departmentDropDownList.selectedItem.deptID;
//var ichild:*=employeeModule.child as IModuleInfo;
}
ここで、100万ドルの質問は、このdeptIDをEmployeesモジュールに渡す方法です。後者はのGetEmployees(DEPTID)を呼び出すemployee_creationCompleteHandlerがあります
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]変数を使用しようとしましたが、成功せずにいます。
私はあなたの提案を感謝します。
説明的で正確な解決策。 +1 –
しかし、モジュールの使用を開始する場合(アプリケーションアーキテクチャが複雑になっていることを意味します)、アプリケーションフレームワークを使用してこの問題を解決することをお勧めします。 [Parsley](http://www.spicefactory.org/parsley/)と[RobotLegs](http://www.robotlegs.org/)は、いくつかの問題を解決する依存性注入を行う2つの非常に優れたフレームワークですコード行。 –
ありがとうございます!あなたの意見は全く役に立ちました。私はこのサイトの情報をまとめました:http://www.flex-tutorial.fr/2009/10/16/flex-modules-utiliser-des-interfaces-actionscript-pour-communiquer-avec-lapplication/そして私のプロジェクト。 ところで、私のmain.mxmlに、私はDropDownListコントロールchangeHandler関数内で、次のコードを使用する必要がありました。あなたもそれをやる方法は?上記のリンクは古いです、私は方法がFlex3用かFlex4用であるかわかりません。 'VARのichild:IEmployeeInterfaceとして* = employeeModule.child;' – shailenTJ