1

我是 Robotlegs 的新手,并且在第一步中有些挣扎。为了学习绳索,我遵循了Joel Hooks 介绍的第一部分,现在正在尝试在 RL2 中创建相同的内容。

我目前的问题/问题是:

  • 哪个方法替换了上下文中的 startup()
  • 在上下文中,我不能再只使用“mediatorMap”;我需要为此创建一个 MediatorMap 实例吗?
  • 在少数 RL2 示例中,许多开发人员使用 IConfig 来配置他们的主上下文;这是必需的,一个好的约定还是可选的。
  • ..通过这种方式“配置”上下文是什么?

我花了一天中最好的时间寻找解决方案。如果我错过了显而易见的事情,我深表歉意。提前感谢任何煽动。

主类(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
    }
}
4

1 回答 1

2

哪个方法替换了上下文中的startup() 在上下文中

用于context.install安装您要使用的扩展。最常见的一种是MVCSBundle. 使用context.configurewith(new ContextView)参数将开始您的上下文初始化。

我不能再只使用“mediatorMap”;我需要为此创建一个 MediatorMap 实例吗?你可以在任何你需要的地方注入 IMediatorMap,比如在 config [Inject] public var injector:IInjector;

[Inject]
public var mediatorMap:IMediatorMap;

[Inject]
public var commandMap:ISignalCommandMap;

在少数 RL2 示例中,许多开发人员使用 IConfig 来配置他们的主上下文;这是必需的,一个好的约定还是可选的。..通过这种方式“配置”上下文是什么?您可以创建自己的配置。通常,您将在那里映射您的命令、中介和注入。您创建一个 [PostConstruct] 方法,它将调用所有这些东西:

如果在 config 中实现 IConfig,则不需要 [PostConstruct] 标签,因为一旦依赖注入,robotlegs 会自动调用配置函数。

    [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));

        }

调解员的事情在 mapMediators() 上进行配置;

于 2013-10-14T12:44:19.227 回答