Здравствуйте, почему-то не заинжектился сервис в команду
Версия Robotlegs 2
Вот конфиг
Код AS3:
...
[Inject]
public var injector:IInjector;
public function configure():void
{
injector.map(FloxService);
commandMap.map(ConfigEvent.CONFIG_INIT_COMPLETE).toCommand(ShowIntroScreenCommand);
commandMap.map(ScreenEvent.TO_MAIN_SCREEN_REQUEST).toCommand(ShowMainScreenCommand);
commandMap.map(ScreenEvent.TO_INTRO_SCREEN_REQUEST).toCommand(ShowIntroScreenCommand);
commandMap.map(ScreenEvent.SAVE_DATA_REQUEST).toCommand(SaveDataCommand);
mediatorMap.map(IntroScreen).toMediator(IntroScreenMediator);
mediatorMap.map(MainScreen).toMediator(MainScreenMediator);
context.afterInitializing(initComplete);
}
private function initComplete():void
{
dispatcher.dispatchEvent(new ConfigEvent(ConfigEvent.CONFIG_INIT_COMPLETE));
}
...
Команда
Код AS3:
public class SaveDataCommand extends Command{
[Inject]
public var service:IService;
public function SaveDataCommand() {
trace("service = "+service);
if(service){
service.saveData();
}
else{
trace("Service is NULL");
}
}
}
}
Сервис
Код AS3:
package dev.div0.services
{
import com.gamua.flox.Flox;
public class FloxService implements IService {
public function saveGoToMainCount(count:int):void {
Flox.logEvent("go_main_clicked", {count: count});
}
public function saveGoToIntroClick():void {
Flox.logEvent("go_intro_clicked");
}
public function saveData():void {
Flox.getTime(getTimeCompleteHandler, getTimeErrorHandler);
}
private function getTimeErrorHandler(error:String, httpStatus:int):void {
trace("saveData error:"+error +". httpStatus:"+httpStatus);
}
private function getTimeCompleteHandler(time:Date):void {
new SaveData(time.toString());
}
}
}
Вот текст ошибки
Код:
Error: Injector is missing a mapping to handle injection into property "service" of object "[object SaveDataCommand]" with type "dev.div0.commands::SaveDataCommand". Target dependency: "dev.div0.services::IService|"
Эта ошибка возникает если я инжектю сервис в команду в виде интерфейса
Если же инжектю в команду реализацию сервиса
Код AS3:
[Inject]
public var service:FloxService;
то в результате
Код:
Service is NULL
Подскажите, пожалуйста, где я ошибся
Добавлено через 1 час 14 минут
Вопрос снят. Моя невнимательность.
В команде не переопределил метод execute(), в котором следует обращаться к сервису. Вместо этого в конструкторе пытаюсь это сделать