我是Robotlegs的新手,并且在第一步中有点挣扎。 为了学习绳索,我遵循Joel Hooks' introduction的第一部分,现在尝试在RL2中创建相同的部分。
我目前的问题是:
我花了大部分时间寻找解决方案。如果我错过了显而易见的事,我道歉。 提前感谢任何煽动。
主类的一部分(mxml)
xmlns:context="contexts.*"
<fx:Declarations>
<rl:ContextBuilder>
<context:HelloWorldContext/>
</rl:ContextBuilder>
</fx:Declarations>
和(非编译)上下文.as
public class HelloWorldContext extends Context
{
public function HelloWorldContext()
{
this.install(MVCSBundle);
this.configure(HelloWorldConfig);
mediatorMap.map(ButtonView).toMediator(ButtonMediator); // Error: mediatorMap not defined
}
}
答案 0 :(得分:2)
在上下文中的上下文中,哪个方法替换了startup()
使用context.install
安装您要使用的扩展程序。
最常见的是MVCSBundle
。
使用带有context.configure
参数的(new ContextView)
将启动上下文初始化。
我不能只使用“mediatorMap”;我需要创建一个 MediatorMap实例为此? 您可以在任何需要的地方注入IMediatorMap,例如在config中 [注入] public var injector:IInjector;
[Inject]
public var mediatorMap:IMediatorMap;
[Inject]
public var commandMap:ISignalCommandMap;
在少数RL2例子中,很多 开发人员使用IConfig配置他们的主要Context;这是 必要的,良好的约定或可选的。 ..以及以何种方式,是 上下文'配置'通过这个? 你可以创建自己的配置。通常,在那里你将映射你的命令,调解员和注射。你创建了一个[PostConstruct]方法,它将调用所有的东西:
如果在config中实现IConfig,则不需要[PostConstruct]标记,因为一旦注入了依赖项,robotlegs将自动调用configure函数。
[PostConstruct]
public function init():void {
context.logLevel = LogLevel.DEBUG;
// injector.fallbackProvider = new DefaultFallbackProvider();
mapSignalCommands();
mapMediators();
mapInjection();
context.afterInitializing(afterInit);
}
在你的情况下你会有
_context:IContext;
public function MainApp()
{
_context = new Context();
_context.install(MVCSBundle);
_context.configure(HelloWorldConfig,new ContextView(this));
}
mediator事物在mapMediators();
上进行配置