2

在 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”产量

'无法读取未定义的属性'发送''

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

target='targetView'

在哪里

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

那没有用。也没有

target ='views.targetView' nor 'childViews.targetView'

请不要通过说明具有此操作的按钮需要位于 App.targetView 模板中来指导我更改我的应用程序的语义结构,因为这对我来说是一种黑客行为,并且会弄乱我的应用程序的语义结构。

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

4

1 回答 1

3

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

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

例如

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

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

于 2013-12-15T02:41:32.580 回答