In Ember, if you want an action to be handled by a view, it's easy to achieve this using
<button {{action 'something' target='view'}}>
`{{view App.targetView}}` // this is the view in which the 'something' action ought to be handled
If you wanted the parentView to handle this, then target='view'
gets replaced with target='parentView'
Fair enough, my problem is that I want a childView to handle and simply stating 'childView' yields
'Cannot read property 'send' of undefined '
I could choose to specify the name of the view in here, like :
target='targetView'
where
{{view App.targetView viewName="targetView"}}
that did not work. Neither did
target ='views.targetView' nor 'childViews.targetView'
Please don't guide me to change the semantic structure of my app by stating that the button with this action needs to be within the App.targetView template because that to me is a hack and messing with the semantic structure of my app.
What I do need to know is how I can use the target property to specify a specific view, not just the containing or parent view :) ?
To be honest, my instinctive response is "eek, don't do that". But, I'm going to suspend disbelief and stipulate that you have a good reason for wanting to do this.
The reason your approach did not work is that the
target
property path is evaluated in the template's context (which by default is the controller). Solution: use theview
keyword in the property path and chain the viewName of the target view.e.g.
http://emberjs.jsbin.com/aGagORaz/1/edit?html,js,output