获取Ember视图的自定义控制器

时间:2014-02-22 08:45:10

标签: ember.js

我有一个带有自定义控制器的Ember视图。视图需要知道其父视图,因此它声明了一个" needs"。然而,不知何故,我似乎无法从模板中检索自定义控制器; "控制器"属性绑定到父视图而不是当前视图。

我创建了一个说明问题的JSBin:http://jsbin.com/muwikora/3/edit

如输出所示," controller"绑定到ApplicationController而不是MyViewController,这是我所期望的。

我看到MyViewController正在创建并且在我可以存储它的路线中可用,但它似乎不是一个很好的解决方案。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

手柄视图助手不允许您指定要与视图一起使用的控制器。它允许您使用当前上下文呈现视图,这就是您将应用程序控制器视为控制器的原因,在应用程序模板中调用{{view App.MyView }}将传递其ApplicationController的上下文

渲染帮助程序更符合您的需求,它允许您动态创建视图/控制器堆栈。

参见修订后的JSBin:http://jsbin.com/muwikora/4/edit

查看此答案以获取更多信息:ember.js + handlebars: render vs outlet vs partial vs view vs control

我鼓励您阅读有关创建复杂视图的最佳实践的讨论。使用渲染有一些后果,你应该知道http://discuss.emberjs.com/t/best-practices-when-creating-a-complex-page-render-vs-component-vs-view/4045/2