使用Ember.js排除路由和状态

时间:2012-06-13 18:05:08

标签: ember.js

首先我应该说我是一个完整的Ember.js noob(以及一般的MVC JavaScript Framework noob)。

我正在试图弄清楚路由器和StateManager如何协同工作。我拼凑了一个来自互联网上不同地方的例子,你可以在这里查看:

http://jsfiddle.net/zdfs/qsAxZ/1/

所以第一次加载的所有东西看起来都在起作用。但是有些功能似乎没有正常运行。我希望通过动作链接附加的CSS类实际上是应用程序状态的一部分,但我在某处搞砸了。

您可以点击“webcam”或“屏幕共享”来复制问题。链接将突出显示。当我重新加载页面时,状态是正确的,但突出显示丢失。我做错了什么,但我不知道如何解决它。

如果我尝试将操作移动到StateManager中,则router.get("applicationController")引用将丢失。

我也做不到sManager.send("goHome");之类的事情 - 出现问题。

1 个答案:

答案 0 :(得分:0)

阅读完代码后的一些评论:

  • 您是否有理由在路由器和放大器之间拆分代码? StateManager?在当前的规范形式中,您的状态应该是Ember.State的类,位于路由器内。
  • connectOutlet方法应该从connectOutlets状态的挂钩调用,而不是enter挂钩。
  • 路由器中的事件处理程序在第一个参数中获取路由器实例,而不是状态(参见goHomeviewWebcam& viewScreen