Ember:为动作辅助对象指定目标动作视图,而不是包含视图或父视图



在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模板中,因为这对我来说是一种黑客行为,扰乱了我的应用程序的语法结构。

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

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

您的方法不起作用的原因是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,输出

相关内容

  • 没有找到相关文章

最新更新