Миграция простого приложения Robotlegs (форма 1.5 до 2)
Я новичок в Robotlegs и немного борюсь с первыми шагами. Чтобы изучить веревки, я следовал за первой частью введения Джоэла Хукса и сейчас пытаюсь создать то же самое в 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
}
}
1 ответ
Какой метод заменил startup() в контексте в контексте
использование context.install
установить расширение, которое вы хотите использовать. наиболее распространенным является MVCSBundle
, использование context.configure
с (new ContextView)
Аргумент начнет инициализацию вашего контекста.
Я больше не могу просто использовать "mediatorMap"; Нужно ли для этого создавать экземпляр MediatorMap? вы можете внедрить IMediatorMap где угодно, например, в config [Inject] public var injector:IInjector;
[Inject]
public var mediatorMap:IMediatorMap;
[Inject]
public var commandMap:ISignalCommandMap;
В нескольких примерах RL2 многие разработчики используют IConfig для настройки своего основного контекста; это требуется, хорошее соглашение или необязательно. ... и каким образом контекст "настроен" через это? Вы можете создать свой собственный конфиг. Обычно там вы будете отображать свои команды, посредников и инъекции. Вы создаете один метод [PostConstruct], который будет вызывать все эти вещи:
Если вы реализуете IConfig внутри config, вам не понадобится тег [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));
}
посредник идет в конфиге на mapMediators();