我正在尝试使用 Robotlegs 框架构建一个 Flex 应用程序,并且不知道如何仅在视图组件的 creationComplete 事件之后处理调解器的创建(-> onRegister 被调用)。
我的应用程序在启动时加载了几个 XML 文件,从文件中创建模型,然后使用数据发送事件。问题:在启动时“加载”嵌入式/本地文件时,模型事件在添加调解器侦听器之前被调度,尽管它们在触发主上下文中的初始数据加载之前被映射。
是否有人使用带有 flex 的机器人腿,并且找到了一种“更清洁”的方法,而不是在调解器 onRegister 中手动调度事件?这样做,“自动”调解将不再是自动的......
编辑:
最小示例代码:
语境:
override public function startup( ):void{
mediatorMap.mapView( EditorMenu, EditorMenuMediator );
commandMap.mapEvent( ContextEvent.STARTUP, LoadConfigurationCommand );
dispatchEvent( new ContextEvent( ContextEvent.STARTUP ) );
}
加载配置命令:
[Inject] public var configurationService:IXMLLoader;
override public function execute():void{
configurationService.loadXML();
}
配置服务:
public function loadXML(){
trace( "xml loaded" );
dispatch( new XMLLoadedEvent( XMLLoadedEvent.CONFIGURATION_LOADED, result ) );
}
EditorMenuMediator:
override public function onRegister( ):void{
trace( "menu onregister" );
addContextListener( XMLLoadedEvent.CONFIGURATION_LOADED, handleXmlLoaded, XMLLoadedEvent);
}
跟踪“menu onregister”发生在跟踪“xml 加载”之前,因此在调度 XmlLoadedEvent 时中介没有侦听。