2013-09-06 5 views
1

Я новичок в Robotlegs и несколько борюсь с первыми шагами. Чтобы узнать веревки, я последовал за первой частью Joel Hooks' introduction, и теперь я пытаюсь создать то же самое в RL2.Миграция простого приложения Robotlegs (форма от 1,5 до 2)

Мои текущие вопросы/проблемы:

  • Какой метод заменил запуска() в контексте
  • В контексте я больше не может просто использовать «mediatorMap»; Мне нужно создать экземпляр MediatorMap для этого?
  • В нескольких примерах RL2 многие разработчики используют IConfig для настройки своего основного контекста; это требуется, хорошее соглашение или необязательное.
  • .. и каким образом Контекст «настроен» через это?

Я потратил большую часть дня на поиски решений. Прошу прощения, если я пропустил очевидное. Заранее благодарим за любые подстрекательства.

часть основного класса (MXML)

xmlns:context="contexts.*" 
    <fx:Declarations> 
     <rl:ContextBuilder> 
      <context:HelloWorldContext/> 
     </rl:ContextBuilder> 
</fx:Declarations> 

и (не compling) контекст .в

public class HelloWorldContext extends Context 
{  
    public function HelloWorldContext() 
    { 
     this.install(MVCSBundle); 
     this.configure(HelloWorldConfig); 

     mediatorMap.map(ButtonView).toMediator(ButtonMediator); // Error: mediatorMap not defined 
    } 
} 

ответ

2

Какой метод заменил запуск() в контексте, в Контекст

context.install для установки расширения, которое вы хотите использовать. наиболее часто один MVCSBundle. использование context.configure с аргументом (new ContextView) начнет инициализацию вашего контекста.

Я больше не могу использовать «mediatorMap»; Мне нужно создать для этого экземпляр MediatorMap ? вы можете вставить IMediatorMap везде, где вам это нужно, например, в конфигурации [Inject] public var injector: IInjector;

[Inject] 
public var mediatorMap:IMediatorMap; 

[Inject] 
public var commandMap:ISignalCommandMap; 

В нескольких RL2, например, там, многие разработчики используют IConfig настроить их основной контекст; это требуется, хорошее соглашение или необязательно. .. и каким образом, это Контекст «настроен» через это? вы можете создать свою собственную конфигурацию. Обычно там вы будете отображать свои команды, посредники и инъекции. Вы можете создать один [PostConstruct] метод, который будет вызывать все theese вещи:

Если вы реализуете 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();