Ember:为包含或父视图以外的操作助手指定目标操作视图

时间:2013-12-13 04:41:36

标签: events ember.js ember.js-view

在Ember中,如果您希望视图处理某个操作,则可以使用

轻松实现此操作
<button {{action 'something' target='view'}}>
`{{view App.targetView}}` // this is the view in which the 'something' action ought to be handled

如果您希望parentView处理此问题,则target='view'会被target='parentView'替换

很公平,我的问题是我想要一个childView来处理并简单地说明'childView'产量

'无法读取未定义'

的属性'send'

我可以选择在这里指定视图的名称,例如:

target='targetView'

其中

{{view App.targetView viewName="targetView"}}

没用。

也没有
target ='views.targetView' nor 'childViews.targetView'

请不要指导我更改我的应用程序的语义结构,说明带有此操作的按钮需要在App.targetView模板中,因为这对我来说是一个黑客并且弄乱了我的应用程序的语义结构

我需要知道的是如何使用target属性来指定特定的视图,而不仅仅是包含或父视图:)?

1 个答案:

答案 0 :(得分:3)

说实话,我的本能反应是“eek,不要那样做”。但是,我将暂停怀疑,并规定你有充分的理由想要这样做。

您的方法不起作用的原因是在模板的上下文(默认情况下是控制器)中评估target属性路径。解决方案:在属性路径中使用view关键字并链接目标视图的viewName。

e.g。

<button {{action "foo" target="view.targetView"}}>Click me</button>
{{view App.TargetView viewName="targetView"}}

http://emberjs.jsbin.com/aGagORaz/1/edit?html,js,output