injection into command doesn't seem to be working
Hello,
I'm sure I'm just doing something wrong. I'm still learning both Flex and Robotlegs. So please be patient with me. :-)
In my context, I have this code:
var selectedEmployee:Employee = new Employee();
injector.mapValue(Employee, selectedEmployee, "selectedEmployee");
Then in my app's mediator I have this:
[Inject(name="selectedEmployee")]
public var selectedEmployee:Employee;
And then in an event handler, also in my app's mediator, I do this:
private function onSelectionChange(e:SelectEmployeeEvent):void
{
selectedEmployee = e.employee;
}
All is well, and the selectedEmployee object gets set with the properties and everything that it should. So now, at some point in a command, I want to be able to access this exact same selectedEmployee object. So in a command I have:
[Inject(name="selectedEmployee")]
public var selectedEmployee:Employee;
The command now has a selectedEmployee object, but it is not the same instance as accessed in the app's mediator, as all of its properties are null.
What am I doing wrong? Is this even the correct way to go about things? From the examples in the Best Practices doc, it seems like this should work. Any help would be appreciated.
Thanks,
Chris
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
Support Staff 1 Posted by Shaun Smith on 08 Apr, 2010 06:51 PM
Hi Chris,
What's happening here is that the same instance IS being injected into your Mediator and Command, BUT in the event handler you are changing the Mediator's reference to point to a different instance - doing so won't change any other references to the original instance.
Instead of dealing with a single Employee instance you could create an EmployeeModel that has a selectedEmployee property. Inject the model into your Mediator and Command and manipulate the selectedEmployee property as needed.
Hope that helps!
2 Posted by Chris Sheffield on 08 Apr, 2010 07:31 PM
Wow, Shaun. Thank you. I knew it would be something simple. And it turned out to be my misunderstanding of assignments in Flex. :-) I just assumed that I could copy one instance of an object into another by using the assignment operator. Apparently that's not the case. All is well now. Thanks again.
Support Staff 3 Posted by Shaun Smith on 08 Apr, 2010 07:48 PM
Cool, no problemo :)
Shaun Smith closed this discussion on 08 Apr, 2010 07:48 PM.