我正在尝试创建一个具有内容视图和左侧边栏的应用程序。我无法理解我应该如何实现位于侧边栏中的菜单。自然,我希望它是带有控制器和所有东西的自己的模块,但我一直在尝试这样做时发现了很多问题。我的应用程序模板有一个插座,我可以在其中放置内容并包含菜单,{{view}}
但是我无法将其连接到它所属的控制器。
我已经尝试过http://jsfiddle.net/tzYE7/7/提出的解决方案,它可以让我访问控制器的属性,但事件不会被执行。然后我尝试将菜单集成到其中,ApplicationController
但这似乎不是很优雅而且相当混乱。我还想将模型连接到菜单,我相信如果我尝试将所有这些合并到ApplicationController
. 问题是我不希望菜单简单地是静态的,我希望能够在命令中隐藏和显示它。
我对这个框架很陌生,我正试图围绕它的工作流程以及如何连接所有的点点滴滴。关于如何正确执行此操作的任何想法?
编辑:
“您提供的 emple jsfiddle 使用的是旧路由器,您可以实际发布您当前的代码吗,这将更容易提供帮助” – 直观像素
由于这更像是一个与框架相关的问题,而不是关于我的代码,我认为这并不是真正必要的,但我会尝试进一步详细说明。
我得到的基本上是一个应用程序模板:
<script type="text/x-handlebars" data-template-name="application">
<aside id="sidebar">
{{view App.MenuView}}
</aside>
<section id="content>
{{outlet}}
</section>
</script>
我首先发现的是在菜单模板中无法访问任何控制器属性。我在 github 问题 ( https://github.com/emberjs/ember.js/issues/1712 ) 中发现了以下提到的这一点插入:
App.MenuView = Ember.View.extend({
templateName: 'menu',
init: function() {
this._super();
this.set("controller", App.MenuController.create());
}
});
但是,没有事件被委派给MenuController
,所以有些东西仍然无法正常工作。那是我尝试将所有内容集成到其中的时候ApplicationController
。
在 Ember 中执行此操作的标准方法是什么?我还希望能够从应用程序中的其他控制器隐藏/显示菜单,但似乎其他控制器必须依赖于菜单控制器才能工作,难道不能用事件来完成吗?
这基本上就是我想知道的。感谢您的时间和知识!:)