Error:Injector is missing a rule to handle injection into target
I saw that there was a thread about this previously, but I am
pretty sure there is a bug in v1.03 with injector.mapSingleton( foo
)
In previous releases I was able to map a singleton without issue,
but now I am getting the missing rule error.
in the Context startup method I have this:
injector.mapSingleton(TestModel);
TestModel is this:
public class TestModel extends Actor
{
/**
* @constructor
*/
public function TestModel()
{
trace("TestModel::TestModel()");
super();
}
}
Trying to use it like this:
public class ApplicationMediator extends Mediator
{
[Inject] public var model:TestModel;
override public function onRegister():void
{
trace("ApplicationMediator::onRegister()");
}
}
Throws an error every time.
Comments are currently closed for this discussion. You can start a new one.
Keyboard shortcuts
Generic
? | Show this help |
---|---|
ESC | Blurs the current field |
Comment Form
r | Focus the comment reply box |
---|---|
^ + ↩ | Submit the comment |
You can use Command ⌘
instead of Control ^
on Mac
1 Posted by kristoferjoseph on 07 Feb, 2010 09:29 AM
I figured it out.
It was an order of operation issue.
It seems you need to map the singleton before your mediator mappings.
Otherwise there is a race condition where the mediator is created before the model is instantiated.
The error message is just misleading.
Support Staff 2 Posted by Till Schneidere... on 07 Feb, 2010 11:57 AM
I guess you're probably mediating the contextView in addition to other
views, right? If so, that's what is causing what you're seeing:
The MediatorMap has a special case for handling the contextView
(http://github.com/tschneidereit/robotlegs/blob/master/src/org/robotlegs/base/MediatorMap.as#L117),
which causes the mediator for that to be created immediately during
the call to MediatorMap#mapView.
In that case, the injector tries to inject into the contextView's
mediator and fails if you're only creating the injection rules
afterwards.
3 Posted by kristoferjoseph on 07 Feb, 2010 11:22 PM
Exactly. I must have missed the update that added the mapping of
context.
Kristofer
Till Schneidereit closed this discussion on 08 Feb, 2010 03:56 PM.